本文主要对java中的Stack源码进行分析。
1.Stack类在java.util包中;
2.源码顶部注释分析
3.继承关系
Stack继承了Vector,而Vector类底层使用数组存储数据,那么Stack对象中存储的数据也是存储在数组中的。
4.构造函数
Stack只有一个无参数的构造函数。
5.API介绍
(1)push(item):把数据压入栈
addElement()是父类Vector中的方法,会将压入栈的元素存放在数组末尾。
(2)peek():查看栈顶的数据,返回值为栈顶元素,底层数组中最后一个元素,但是不会删除该元素
(3)pop():查看栈顶的数据,返回值为栈顶元素,底层数组中最后一个元素,同时把栈中的该元素删除。
(4)empty():判断栈是否为空栈
在Vector中有isEmpty(),所以Stack对象也可以使用isEmpty()判断栈是否为空。
(5)search(Object o):返回距离栈顶最近的相同元素的距离,以1为基准。如果栈中不存在这个元素,返回-1。