栈是一种受限的线性表,先进后出,后进先出。
Java的栈数据结构是通过Vector实现的,对外提供了pop、push、peek等接口。
入栈方法复用了Vector的addElement,直接在数组尾部加入一个元素。
public synchronized void addElement(E obj) {
modCount++;
add(obj, elementData, elementCount);
}
出栈方法的实现逻辑是取出数组尾部的元素,然后再删除尾部元素。
public synchronized E pop() {
E obj;
int len = size();
obj = peek();
removeElementAt(len - 1);
return obj;
}