美文网首页
jdk源码之Stack

jdk源码之Stack

作者: 薛晨 | 来源:发表于2016-09-09 12:49 被阅读48次

概要

  • 类继承关系

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.Vector<E>
java.util.Stack<E>

  • 定义

publicclass Stack<E> extends Vector<E> {
}

实现

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

      本文链接:https://www.haomeiwen.com/subject/mumeettx.html