Concept
“栈”通常是指“后进后出”(LIFO)容器。有时栈也被称为叠加栈,因为最后“压入”栈的元素,第一个“弹出”栈。
当一个Stack被创建时,里面是没有任何东西的。
Stack继承Vector,拥有Vector所有的特点和行为,再加上一些额外的Stack行为。可以在Stack对象上执行Vector的操作。因为继承的作用使得Stack是一个Vector,因此所有可以对Vector执行的操作,都可以对Stack执行,例如elementAt()。
创建Stack
Stack<Integer> s = new Stack<Integer>();
Method
Type | Method | Significance |
---|---|---|
boolean | empty() | 判断栈是否为空 |
E | peek() | 查看栈顶元素 但是并不将它移出 |
E | pop() | 移出栈顶元素,并将此对象作为返回值 |
E | push(E item) | 将一个对象压入堆栈顶部 |
int | search(Object o) | 返回对象在堆栈中的位置,以 1 为基数 |
Example
class test{
public static void main(String[] args){
Stack<Integer> s = new Stack<Integer>();
System.out.println(s.isEmpty());//true
s.push(1);
s.push(2);
s.push(2);
System.out.println(s.search(2));//1
System.out.println(s.peek());//2
System.out.println(s);//[1, 2, 2]
System.out.println(s.pop());//2
System.out.println(s);//[1, 2]
}
}
Stack并不要求数据具有唯一性,当Stack中存在多个相同的item时,调用search,只返回离栈顶最近的item与栈顶间的距离。这个距离为1基数,即如果查找的这个数是最后加入栈的,那么返回1。