jdk源码之Stack

概要

  • 类继承关系

java.lang.Object
java.util.AbstractCollection
java.util.AbstractList
java.util.Vector
java.util.Stack

  • 定义

publicclass Stack extends Vector {
}

实现

Stack继承于Vector, 在此基础上实现了Stack所要求的后进先出(LIFO)的弹出及压入操作。提供了push、pop、peek三个主要的方法。

  • pop
public synchronized E pop() {    
  E       obj;    
  int     len = size();    
  obj = peek();    
  removeElementAt(len - 1);    
  return obj;
}

peek()获取了数组中的最后一个元素,removeElementAt()将其删除。

  • peek
public synchronized E peek() {    
  int     len = size();    
  if (len == 0)        
    throw new EmptyStackException();    
  return elementAt(len - 1);
}
  • push
public E push(E item) {    
  addElement(item);    
  return item;
}

push操作是调用了Vector的addElement方法。

注:

  1. Stack 基于 Vector 实现,支持 LIFO。

你可能感兴趣的:(jdk源码之Stack)