1.概述
Stack是栈的实现类,栈的特点是先进后出。继承了Vector,重写了5个方法,对Vector进行了扩展。
2.类图
继承了Vector
3.主要方法
3.1push
调用父类的addElement方法,添加到数组的尾部,也就是栈顶
public E push(E item) {
addElement(item);
return item;
}
3.2 pop
出战操作。
public synchronized E pop() {
E obj;
int len = size();
obj = peek();//出栈
removeElementAt(len - 1);//删除数组中的最后一个元素
return obj;//返回栈顶
}
3.3 peek
调用父类的elementAt方法,传入参数是size()-1,即数组元素的最后一个,也就是栈顶。
public synchronized E peek() {
int len = size();
if (len == 0)
throw new EmptyStackException();
return elementAt(len - 1);
}
3.4 empty
判断是否为空
public boolean empty() {
return size() == 0;
}
3.5 search
调用父类的lastIndexOf方法,从栈顶开始寻找元素o,若找到返回它在数组中的下标位置。若没有返回-1.
public synchronized int search(Object o) {
int i = lastIndexOf(o);
if (i >= 0) {
return size() - i;
}
return -1;
}