Java集合系列之Stack
Stack是先进后出的栈结构,并不直接实现具体的逻辑,而是通过继承Vector类,调用Vector类的方法实现。
public class Stack extends Vector
核心方法
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实现,因此其也是采用数组实现,也是线程安全的。
先进后出的栈结构
更多Java资料,文章,公号《Java路》