java8 集合之Stack详解及实例

java  集合之Stack

概要:

Stack是栈,特性是先进后出(FILO,First In Last Out)。Stack是继承于Vector(矢量队列),由于Vector是同数组实现的,Stack也是通过数组而非链表。

Stack和Collection关系如下:

java8 集合之Stack详解及实例

基于Java8的源代码:

public class Stack<E> extends Vector<E> {

  public Stack() {//创建空栈
  }

  public E push(E item) {//入栈
    addElement(item);
    return item;
  }
  //出栈
  public synchronized E pop() {
    E    obj;
    int   len = size();
    obj = peek();
    removeElementAt(len - 1);
    return obj;
  }
  //返回栈顶元素,但并不出栈
  public synchronized E peek() {
    int   len = size();

    if (len == 0)
      throw new EmptyStackException();
    return elementAt(len - 1);
  }
  //判断栈是否为空
  public boolean empty() {
    return size() == 0;
  }
  //查找元素并返回栈深
  public synchronized int search(Object o) {
    int i = lastIndexOf(o);

    if (i >= 0) {
      return size() - i;
    }
    return -1;
  }

  //序列版本号
  private static final long serialVersionUID = 1224463164541339165L;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!