Java集合系列之Stack

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路》

你可能感兴趣的:(Java集合系列之Stack)