【数据结构】之栈(Java语言描述)
2024-09-01 15:49:07
在前面的【这篇文章】中,我简单介绍了栈这种数据结构的操作功能,并使用C语言对其进行了代码的编写。
Java的JDK中默认为我们提供了栈这种数据结构的API—— Stack 。
Java中的Stack类继承自 Vector 类。Vector也是Java中的一种数据结构,和ArrayList非常相似,不同的是Vector支持线程同步,也就是说,Vector可以理解为ArrayList的线程同步版。Stack继承自Vector类,自然就也是线程同步的了。
栈中有两个最主要的方法:压栈 push() 和弹栈 pop() 。从ArrayList这个与Vector极度相似的类的角度来说,push()操作就是在表的最后添加一个元素的操作;pop()操作就是将表中的最后一个元素删除并返回的操作。两个方法都是直接沿用Vector中现有的方法,因此不加赘述,直接上源码:
public E push(E item) {
addElement(item); return item;
} public synchronized E pop() {
E obj;
int len = size(); obj = peek();
removeElementAt(len - 1); return obj;
}
最新文章
- 非常全面的SQL Server巡检脚本来自sqlskills团队的Glenn Berry 大牛
- photoshop学习入门:选择和处理
- raw,cow,qcow,qcow2镜像的比较
- Slave2: no datanode to stop(权限)
- JS判断是wap端访问网站还是PC端访问,然后进行自动跳转的代码
- JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
- PC上安装多个操作系统
- for循环进阶
- 淘宝设计师入门:设计师SDK环境配置
- js学习--DOM操作详解大全一(浏览器对象)
- wpf 控件截屏
- 【技巧】datagrid锁定列后重新加载时出现错位问题的解决
- js中获取URL参数的共通方法getRequest()方法
- Delphi MDI 子窗体的创建和销毁 [zhuan]
- linux每日命令(27):chmod命令
- [No0000177]详解/etc/profile、/etc/bash.bahsrc、~/.profile、~/.bashrc的用途
- [翻译] INSSearchBar
- C# 格式化一些知识点
- 【BZOJ3144】切糕(网络流,最小割)
- appium+python自动化29-toast