java中Stack类的介绍

本文主要对java中的Stack源码进行分析。

1.Stack类在java.util包中;

2.源码顶部注释分析

java中Stack类的介绍

3.继承关系

Stack继承了Vector,而Vector类底层使用数组存储数据,那么Stack对象中存储的数据也是存储在数组中的。

java中Stack类的介绍

4.构造函数

Stack只有一个无参数的构造函数。

5.API介绍

(1)push(item):把数据压入栈

java中Stack类的介绍

addElement()是父类Vector中的方法,会将压入栈的元素存放在数组末尾。

java中Stack类的介绍


(2)peek():查看栈顶的数据,返回值为栈顶元素,底层数组中最后一个元素,但是不会删除该元素

java中Stack类的介绍

java中Stack类的介绍

java中Stack类的介绍

(3)pop():查看栈顶的数据,返回值为栈顶元素,底层数组中最后一个元素,同时把栈中的该元素删除。

java中Stack类的介绍

(4)empty():判断栈是否为空栈

在Vector中有isEmpty(),所以Stack对象也可以使用isEmpty()判断栈是否为空。

(5)search(Object o):返回距离栈顶最近的相同元素的距离,以1为基准。如果栈中不存在这个元素,返回-1。