堆栈是“后进先出”(LIFO )集合。 因为最后推入堆栈的元素首先从堆栈中推出。
像重叠的盘子一样,必须取出上面的盘子,才能取出下面的盘子。 强行取出下面的盘子会导致结构不稳定,引起崩溃。
1基本用法
Java使用新的类ArrayDeque实现了堆栈结构。
输出:
2堆叠类
为什么不推荐Java堆栈类?
因为堆栈类继承Vector类,并继承Vector中的所有公共方法。 向量作为动态数组提供了一种在数组中的任意位置添加或删除元素的方法。 这个设计破坏了堆栈这个数据结构。 因为堆栈只能在一端操作。
要替换本机堆栈类,可以自定义名为Stack的类。
3向量级
为什么不推荐Java Vector类?
从Vector类的源代码中可以看到,许多API方法添加到synchronized注释中,从而在方法级别实现同步操作。 这样可以确保线程的安全,但会牺牲性能。 因此,对ArrayList没有效率。
另一个原因是,如果扩展了Vector对象,则默认值为原始容量的两倍。 另一方面,ArrayList类的扩展容量是原始容量的1.5倍,因此ArrayList类更节省空间。