介绍
last-in-first-out
,后进先出是它最大的特点。class Stack<E> extends Vector<E>
作为Vector的子类。
Vector底层使用数组存储数据,所以Stack也是如此。
Stack类自身的一些方法:
方法 | 方法描述 |
---|---|
boolean empty() |
测试堆栈是否为空。 |
Object peek() |
查看堆栈顶部的对象,但不从堆栈中移除它。 |
Object pop() |
移除堆栈顶部的对象,并作为此函数的值返回该对象。 |
Object push(E item) |
把项压入堆栈顶部。 |
int search(Object o) |
返回距离栈顶最近的相同元素的距离,返回对象在堆栈中的位置,以 1 为基数。 |
其中search方法比较特殊,返回的是该元素的位置,但是从1开始的,这个不是数组下标。源码里是这样写的:
1 | public synchronized int search(Object o) { |
如果该栈不存在任何元素,使用pop和peek方法会报NPE。
以上方法都是用了synchronized
进行修饰,确保线程同步。