0
点赞
收藏
分享

微信扫一扫

集合系列 List(五):Stack

Stack 是先进后出的栈结构,其并不直接实现具体的逻辑,而是通过继承 Vector 类,调用 Vector 类的方法实现。

public
class Stack<E> extends Vector<E>

核心方法

Stack 类代码非常简单,其有 3 个核心方法:push、pop、peek。

push

public E push(E item) {
addElement(item);

return item;
}

可以看到 push 方法直接调用 Vector 的 addElement 方法将元素插入数组尾部。

pop

public synchronized E pop() {
E obj;
int len = size();

obj = peek();
removeElementAt(len - 1);

return obj;
}

pop 方法调用 Vector 的 removeElementAt 方法,删除了一个元素。要注意的是,其删除的是数组最后一个元素,而不是第一个元素。

peek

public synchronized E peek() {
int len = size();

if (len == 0)
throw new EmptyStackException();
return elementAt(len - 1);
}

peek 方法直接返回列表最后一个元素。

总结

Stack 方法代码真的是非常简单,其利用 Vector 实现了一个线程安全的栈结构。总的来说,其有以下特点:

  • 底层采用 Vector 实现,因此其也是采用数组实现,也是线程安全的。
  • 先进后出的栈结构

集合系列 List(五):Stack_数组



举报

相关推荐

0 条评论