重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天就跟大家聊聊有关如何进行Stack源码分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联建站网站建设服务商,为中小企业提供成都网站建设、成都做网站服务,网站设计,网站托管、服务器租用等一站式综合服务型公司,专业打造企业形象网站,让您在众多竞争对手中脱颖而出创新互联建站。
我们介绍另一种底层也是用数据方式实现的集合,它就是Stack集合。Stack与ArrayList和Vector相比,有自己独特的一些特性。正是因为Stack有自己独特的特性,所以在使用上Stack与ArrayList、Vector相比有些区别,所以下面我们先了解一下Stack集合的基本使用,然后在分析Stack集合的底层源码。
Stack也就是栈,它和其它集合相比它的特性就是后进先出,也就是后添加到Stack集合中的元素,会被添加到栈的最顶位置。下面我们看一下在Stack集合中的都包括哪些方法。
下面我们通过一个简单的例子来演示上面方法的基本使用。
下面我们分析一下Stack集合的底层源码,还是和ArrayList集合和Vector集合一样,我们先看一下Stack集合的初始化。
源码中只有一个无参的构造主法,这就说明,在我们创建Stack对象时,并不会执行底层数组的初始化。
上面的代码是Stack集合把元素添加到栈顶的方法,我们看上面的代码是不是感觉似曾相识,好像和Vector集合的底层源码一模一样。这是因为Stack集合是Vector集合的子类,也就是Stack集合默认继承了Vector集合。下面是底层源码。
所以我们可以理解为Stack集合的底层实现原理和Vector集合是一样的,包括底层数组的自动扩展规律等特性都是一样的。也就是说Stack集合和Vector集合一样当底层数据超过最大容量时,会自动扩展为原来的2倍容量来存储元素。
下面我们看一下Stack集合中其它方法的底层实现,因为这些方法逻辑已经在Vector集合中介绍过了,并且方法的实现逻辑比较简单,这里我们就不在详细分析了,只是简单展示。
peek()
pop()
search(Object o)
看完上述内容,你们对如何进行Stack源码分析有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。