Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来(如下所示)。
E push(E item)
把项压入堆栈顶部。
E pop()
移除堆栈顶部的对象,并作为此函数的值返回该对象。
E peek()
查看堆栈顶部的对象,但不从堆栈中移除它。
boolean empty()
测试堆栈是否为空。
int search(Object o)
返回对象在堆栈中的位置,下标从1开始。
示例:
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
Stack<String> s = new Stack<String>() ;
s.push("A") ; // 入栈
s.push("B") ; // 入栈
String tmp = s.peek() ; // 查询栈顶元素,不移除
System.out.println(tmp);
String tmp1 = s.pop(); // 查询栈顶元素,移除
s.push("C") ;
s.push("D") ;
System.out.println(s);
int index = s.search("D"); //返回对象在堆栈中的位置
System.out.println(index) ;
if(!s.isEmpty()) System.out.println(s) ;
}
}
运行结果:
B
[A, C, D]
1
[A, C, D]