Stack是一种后进先出的数据结构类型(数组)(last in frist out);实现了Vector;在Vector的基础添加了五个方法:
push(E item)#把项压入堆栈顶部。
pop() #移除堆栈顶部的对象,并作为此函数的值返回该对象。
peek() #查看堆栈顶部的对象,但不从堆栈中移除它。
boolean empty()#测试堆栈是否为空。
int search(Object o)#返回对象在堆栈中的位置,以 1 为基数。
Stack的上层接口和实现类是:
Stack extends Vector extends java.util.AbstractList implements java.util.List,(Vector是线程安全的)。
五个方法的分别使用:
push:
Stack st = new Stack();//构建Stack对象
System.out.println("stack: " + st);//看到Stack是一个空的数组
showpush(st, 20);//分别添加三条数据20,66,99到Stack
showpush(st, 66);
showpush(st, 99);
添加方法
static void showpush(Stack st, int a) {
st.push(new Integer(a));
System.out.println("push(" + a + ")");
System.out.println("stack: " + st);
}
添加一条数组中多一条,而且是在数组的尾部添加的,最后完成的是一个数组;
获取一般是用peek():其作用每次都获取的是Stack的最后一个元素。符合last in fist out的原则;
使用方式是:st.peek()#就会获取到99这个元素;
pop使用,其作用是移除堆栈顶部的对象,并作为此函数的值返回该对象。
如上面的Stack使用了pop()之后返回的
每次删除之后会返回对象,删除也是最顶端的;
st.empty(); 开始是true;当添加数据之后false;
st.search(20);返回的是3,下标是从顶端开始,第一个为1。第二个为2 ,以此类推n。