java容器之四_stack
来源:互联网 发布:mac 虚拟机 win10 编辑:程序博客网 时间:2024/05/16 11:58
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
- 数据结构之栈_Stack
- C++数据结构 之 栈_Stack
- java知识点汇总之四容器
- Java 容器(四) Map
- Java容器四:Hashtable
- Docker之容器(四)
- java之容器
- java之容器
- java之容器类
- JAVA初学之容器
- JAVA之容器
- Java容器之HashMap
- java之容器
- Java核心技术之容器
- Java总结之容器
- Java总结之容器
- Java容器之Map
- Volley原理分析
- Ubuntu下安装WeChat
- java注解,有什么用?
- 常用的Mysql数据库操作语句大全
- Spring的IOC原理[通俗解释一下]
- java容器之四_stack
- CSS Modules 用法教程
- 在一个tomcat上配置多个相同的应用,或者是用同一个端口上放置多个应用
- mac显示隐藏文件
- Android 压缩文件
- 总结 React 组件的三种写法 及最佳实践 [涨经验]
- 物联网设备快速入网的方式
- JAVA设计模式之策略模式
- Quartz 作业调度用法详解