java集合--Stack
来源:互联网 发布:没有可用软件包 nginx 编辑:程序博客网 时间:2024/06/12 01:29
Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来
Deque(双端队列)比起Stack具有更好的完整性和一致性,应该被优先使用
Stack本身通过扩展Vector而来,而Vector本身是一个可增长的对象数组( a growable array of objects)那么这个数组的哪里作为Stack的栈顶,哪里作为Stack的栈底?
答案只能从源代码中寻找,jdk1.6:
通过peek()方法注释The object at the top of this stack (the last item of the Vector object,可以发现数组(Vector)的最后一位即为Stack的栈顶
pop、peek以及search方法本身进行了同步
push方法调用了父类的addElement方法
empty方法调用了父类的size方法
Vector类为线程安全类
综上,Stack类为线程安全类(多个方法调用而产生的数据不一致问题属于原子性问题的范畴)
结果:
Stack并不要求其中保存数据的唯一性,当Stack中有多个相同的item时,调用search方法,只返回与查找对象equal并且离栈顶最近的item与栈顶间距离(见源码中search方法说明)
0 0
- Java集合之Stack
- 04.Java 集合 - Stack
- java集合--Stack
- Java集合(stack)
- 深入java集合:Stack
- java--集合--Vector/Stack
- java集合类Stack类
- java集合框架Stack栈
- Java集合之Vector、Stack
- java集合vector与stack
- Java集合-07之 Stack
- 【JAVA】五 JAVA集合 Collection Vector Stack
- java集合类之Stack类
- Java集合之Stack 源码分析
- java集合类——Stack类
- java集合07--Stack源码解读
- Java集合之Stack与Queue介绍
- java集合07--Stack源码解读
- WebView设置
- jvm虚拟机内部原理之概述和内存分配
- 安全退出当前应用程序的方法_在新公司学到的第一点
- 文章标题
- java中值传递和引用传递出现区别的原因
- java集合--Stack
- hihocoder[Offer收割]编程练习赛5及参考
- 请求数据并xml解析
- yii2设置ActiveForm->dropDownList->prompt_val 真正支持下拉菜单默认值
- Http 与 Https
- Android开发-使用SharedPreferences保存数据-常用操作
- 内存泄露导致的内存溢出
- 统计文件中出现次数最多的前10个单词
- 仿ios的滚轮选择控件