介绍
last-in-first-out
,后进先出是它最大的特点。class Stack<E> extends Vector<E>
作为 Vector 的子类。
Vector 底层使用数组存储数据,所以 Stack 也是如此。
Stack 类自身的一些方法:
方法 | 方法描述 |
---|---|
boolean empty() | 测试堆栈是否为空。 |
Object peek() | 查看堆栈顶部的对象,但不从堆栈中移除它。 |
Object pop() | 移除堆栈顶部的对象,并作为此函数的值返回该对象。 |
Object push(Object element) | 把项压入堆栈顶部。 |
int search(Object element) | 返回对象在堆栈中的位置,以 1 为基数。 |
其中 search 方法比较特殊,返回的是该元素的位置,但是从 1 开始的,这个不是数组下标。源码里是这样写的:
public synchronized int search(Object o) {
int i = lastIndexOf(o);
if (i >= 0) {
return size() - i;
}
return -1;
}
如果该栈不存在任何元素,使用 pop 和 peek 方法会报 NPE。
以上方法都是用了 synchronized
进行修饰,确保是线程同步。
父类方法
留在 Vector 篇章记录。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于