Java 源码 - Stack 集合类


介绍

The Stack class represents a last-in-first-out stack of objects. It extends class Vector with five operations that allow a vector to be treated as a stack.

示例

public class Test {
  public static void main(String[] args) {
    Stack stack = new Stack();
    stack.push("gege");
    stack.push("fei");
    System.out.println(stack.pop() + stack.pop());
  }
}

结果:feigege

结构

源码

成员变量

/**
 * The array buffer into which the components of the Stack are stored.
 */
protected Object[] elementData;

构造方法

/**
 * Creates an empty Stack.
 */
public Stack() { }

成员方法

入栈

/**
 * Pushes an item onto the top of this stack.
 */
public E push(E item) {
  addElement(item);
  return item;
}

出栈

/**
 * Removes the object at the top of this stack and returns that
 * object as the value of this function.
 */
public synchronized E pop() {
  E obj;
  int len = size();
  obj = peek();
  removeElementAt(len - 1);
  return obj;
}

看栈顶

/**
 * Looks at the object at the top of this stack without removing it
 * from the stack.
 */
public synchronized E peek() {
  int len = size();
  if (len == 0)
    throw new EmptyStackException();
  return elementAt(len - 1);
}