源码解读—Stack

时间:2022-06-13 04:10:25

Stack特性:先进后出、后进先出

java.util.Stack实现了这一数据结构。

   public  class Stack<E> extends Vector<E>,Stack继承Vector,Stack中的所有操作都是调用Vector中的方法进行操作,即使是数据的存储也是使用vector中的Object[] elementData对象数组来进行数据存储的。所以说stack是基于数组的数据结构。

Stack的实现比较简单,一个也就六个方法:

aaarticlea/png;base64,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" alt="" />

Stack()构造方法:

new Stack()的时候调用空的构造方法。

aaarticlea/png;base64,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" alt="" />

由于Stack继承了vector,程序继续调用Vector的构造器:Vector();

aaarticlea/png;base64,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" alt="" />

this(10),继续找到  public Vector(int initialCapacity),可见initialCapacity=10,也即是初始化Object [] elementData数组大小为10。

aaarticlea/png;base64,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" alt="" />

继续执行    this(initialCapacity, 0);找到 public Vector(int initialCapacity, int capacityIncrement) ;capacityIncrement=0;初始化的时候不要进行扩容。

aaarticlea/png;base64,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" alt="" />

stack 对象创建完成。

public E push(E item):

程序调用继承自Vector的public synchronized void addElement(E obj);方法添加数据元素。

aaarticlea/png;base64,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" alt="" />

不明白为什么直接return item而不返回一个操作结果失败成功提示。

进行插入数据操作:

 public synchronized void addElement(E obj) {
modCount++;//这个来自于Vector的父类AbstractList,不知道是干嘛的
//elementCount:插入数据所在的数组下标;如果需要,进行数组扩容
ensureCapacityHelper(elementCount + 1);
//把数据保存在数组中
elementData[elementCount++] = obj;
}

再看private void ensureCapacityHelper(int minCapacity);

  private void ensureCapacityHelper(int minCapacity) {
//保存数组长度
int oldCapacity = elementData.length;
//如果最小容量大于数组容量则进行扩容操作
if (minCapacity > oldCapacity) {
//保存数组数据
Object[] oldData = elementData;
//初始化设置的capacityIncrement如果大于0 则新数组容量为原容量+扩容容量,否则2倍扩容
int newCapacity = (capacityIncrement > 0) ?(oldCapacity + capacityIncrement) : (oldCapacity * 2);
//如果容量依旧小于最小需要的容量则直接以最小需要容量为扩容后容量
if (newCapacity < minCapacity) {
newCapacity = minCapacity;
}
//调用Arrays.copyOf赋值新数组
elementData = Arrays.copyOf(elementData, newCapacity);
}
}

再看public synchronized E pop();

    public synchronized E pop() {
E obj;
//获取数组插入数据的个数elementCount(不是数组的长度)
int len = size();
//找到最后插入的元素,进行返回
obj = peek();
//删除最后一个元素
removeElementAt(len - 1);
return obj;
}
再看public synchronized E peek();
//注意synchronized
public synchronized int size() {
//获取数组插入数据的个数
return elementCount;
}
//注意synchronized
public synchronized E peek() {
int len = size();
if (len == 0)
throw new EmptyStackException();
//返回最后一个存储的数据
return elementAt(len - 1);
}

 public boolean empty() ,判断数组内容数据是否为空,为什么不用 isEmpty()命名呢?……

    public boolean empty() {
return size() == 0;
}

public synchronized int search(Object o); 查找数据所处数组位置,如果没有则返回-1

   public synchronized int search(Object o) {
//获取o所在数组中的最后一个位置。注意这个i是从后向前查的位置,也就是从后向前查,第一个O处于第几个元素
int i = lastIndexOf(o);
if (i >= 0) {
//返回元素所在数组中的位置
return size() - i;
}
return -1;
}

再看lastIndex();

   //调用Vectort的方法
public synchronized int lastIndexOf(Object o) {
return lastIndexOf(o, elementCount - 1);
}
//注意index传过来的数值
public synchronized int lastIndexOf(Object o, int index) {
if (index >= elementCount)
throw new IndexOutOfBoundsException(index + " >= " + elementCount);
//由此可见,数组中是可以存储null值的
if (o == null) {
//由后向前循环找出元素所在位置
for (int i = index; i >= 0; i--)
if (elementData[i] == null)
return i;
} else {
//由后向前循环找出元素所在位置
for (int i = index; i >= 0; i--)
if (o.equals(elementData[i]))
return i;
}
//找不到数据则返回-1
return -1;
}

Stack本身比较简单,没有太过复杂的操作。

源码解读—Stack的更多相关文章

  1. AFNetworking 3&period;0 源码解读 总结(干货)(上)

    养成记笔记的习惯,对于一个软件工程师来说,我觉得很重要.记得在知乎上看到过一个问题,说是人类最大的缺点是什么?我个人觉得记忆算是一个缺点.它就像时间一样,会自己消散. 前言 终于写完了 AFNetwo ...

  2. AFNetworking 3&period;0 源码解读 总结

    终于写完了 AFNetworking 的源码解读.这一过程耗时数天.当我回过头又重头到尾的读了一篇,又有所收获.不禁让我想起了当初上学时的种种情景.我们应该对知识进行反复的记忆和理解.下边是我总结的 ...

  3. jQuery&period;Callbacks 源码解读二

    一.参数标记 /* * once: 确保回调列表仅只fire一次 * unique: 在执行add操作中,确保回调列表中不存在重复的回调 * stopOnFalse: 当执行回调返回值为false,则 ...

  4. SDWebImage源码解读之SDWebImageDownloader

    SDWebImage源码解读之SDWebImageDownloader 第八篇 前言 SDWebImageDownloader这个类非常简单,作者的设计思路也很清晰,但是我想在这说点题外话. 如果有人 ...

  5. 【原】Spark中Job的提交源码解读

    版权声明:本文为原创文章,未经允许不得转载. Spark程序程序job的运行是通过actions算子触发的,每一个action算子其实是一个runJob方法的运行,详见文章 SparkContex源码 ...

  6. java&period;lang&period;system 类源码解读

    通过每块代码进行源码解读,并发现源码使用的技术栈,扩展视野. registerNatives 方法解读 /* register the natives via the static initializ ...

  7. Flask(4)- flask请求上下文源码解读、http聊天室单聊&sol;群聊(基于gevent-websocket)

    一.flask请求上下文源码解读 通过上篇源码分析,我们知道了有请求发来的时候就执行了app(Flask的实例化对象)的__call__方法,而__call__方法返回了app的wsgi_app(en ...

  8. Webpack探索【16】--- 懒加载构建原理详解(模块如何被组建&amp&semi;如何加载)&amp&semi;源码解读

    本文主要说明Webpack懒加载构建和加载的原理,对构建后的源码进行分析. 一 说明 本文以一个简单的示例,通过对构建好的bundle.js源码进行分析,说明Webpack懒加载构建原理. 本文使用的 ...

  9. flask的请求上下文源码解读

    一.flask请求上下文源码解读 通过上篇源码分析( ---Flask中的CBV和上下文管理--- ),我们知道了有请求发来的时候就执行了app(Flask的实例化对象)的__call__方法,而__ ...

随机推荐

  1. &lbrack;&period;net 面向对象编程基础&rsqb; &lpar;3&rpar; 基础中的基础——数据类型

    [.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...

  2. Effective C&plus;&plus; -----条款36:绝不重新定义继承而来的non-virtual函数

    绝对不要重新定义继承而来的non-virtual函数.

  3. python-appium手机自动化测试(仅需安装包)前期准备(pydev-eclipse编辑器)

    1.jdk安装与环境变量配置教程http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html 我本机安装的是1.6.043 2.sdk下 ...

  4. 【上传AppStore】iOS项目上传到AppStore步骤流程&lpar;第二章&rpar; - 利用P12文件生成证书&period;多人开发必备 &amp&semi; 前言扫盲

    前言的前言 : 有几种关系需要搞清楚的.由我自己经历的坑和看着网上大多数资料来说,比较混乱.现在整理一下 正如前面的文章所言.一套由零 - 申请证书 - AppIDs - Provisioning P ...

  5. excel文档

    1.快速统计行数(ctrl+Shift+(方向键向下)). bson数据类型 留个影响 public enum BsonType { Double = 0x01, String = 0x02, Doc ...

  6. COJ 2110 Day7-例3

    Day7-例3 难度级别:C: 运行时间限制:5000ms: 运行空间限制:256000KB: 代码长度限制:2000000B 试题描述 输入 输入的第一行包含整数n和k,其中n(2 ≤ n ≤100 ...

  7. Arcgis Runtime sdk for android 授权

    要下载和安装 ArcGISRuntime SDK for Android,您需要注册开发者账户,进而便拥有了访问所有功能的权限,从而实现开发和测试目的.但是,这种情况下,应用程序中的所有地图都具有水印 ...

  8. YII与Ace Admin 的集成

    目录 一. 前言... 1 二.为什么要使用YII+ace. 1 三.新建YII模块... 1 四.如何修改模板... 3 五.注意的地方... 4 六.整合的不足之处... 4 一. 前言 yii- ...

  9. winform编程设定listview选中行

    在做项目中,需要用到listview显示数据.同时,项目要求,通过检索用户输入的数据,程序通过搜索,确定数据所在的行并通过程序设定为选中状态并高亮显示.同时,正常响应鼠标单击响应的效果,单击时,程序设 ...

  10. Node-webkit 安装使用npm安装模块方法

    原文链接:http://jingyan.baidu.com/article/5225f26b5aaa20e6fa0908a6.html package.json可以放在软件根目录下,也可以放在项目目录 ...