栈是一种受限的线性表,先进后出,后进先出。

    Java的栈数据结构是通过Vector实现的,对外提供了pop、push、peek等接口。
    入栈方法复用了Vector的addElement,直接在数组尾部加入一个元素。

    1. public synchronized void addElement(E obj) {
    2. modCount++;
    3. add(obj, elementData, elementCount);
    4. }

    出栈方法的实现逻辑是取出数组尾部的元素,然后再删除尾部元素。

    1. public synchronized E pop() {
    2. E obj;
    3. int len = size();
    4. obj = peek();
    5. removeElementAt(len - 1);
    6. return obj;
    7. }