jdk源码之Stack

概要

  • 类继承关系

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。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,267评论 18 399
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 9,472评论 2 8
  • 在经过一次没有准备的面试后,发现自己虽然写了两年的android代码,基础知识却忘的差不多了。这是程序员的大忌,没...
    猿来如痴阅读 8,073评论 3 10
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 4,798评论 0 4
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33

友情链接更多精彩内容