Stack 栈
简介
- stack 类是 Vector 类的一个子类,它实现了标准的后进先出的栈
常用方法
序号 | 方法 | 作用 |
---|---|---|
1 | boolean empty() | 判断栈是否为空 |
2 | Object peek() | 查看栈顶部的对象,但不从堆栈中移除它 |
3 | Object pop() | 移除栈顶部的对象,并作为此函数的值返回该对象。 |
4 | Object push(Object obj) | 把元素压入栈顶部 |
5 | int search(Object obj) | 返回对象在堆栈中的位置,从栈顶往下开始查找。 |
用法讲解
创建一个空的字符栈
Stack<Character> stack = new Stack<Character>();
System.out.println("stack: " + stack); // stack: []
将元素 R 压入栈顶部
Stack<Character> stack = new Stack<Character>();
stack.push('R');
System.out.println("stack: " + stack); // stack: [R]
判断栈是否为空
Stack<Character> stack = new Stack<Character>();
System.out.println(stack.empty()); // true
stack.push('R');
System.out.println(stack.empty()); // false
移除栈顶元素,但不移除
Stack<Character> stack = new Stack<Character>();
stack.push('R');
System.out.println("stack: " + stack); // stack: [R]
System.out.println(stack.peek()); // R
System.out.println("stack: " + stack); // stack: [R]
移除栈顶元素;如果栈为空会引起EmptyStackException
Stack<Character> stack = new Stack<Character>();
stack.push('R');
System.out.println("stack: " + stack); // stack: [R]
System.out.println(stack.pop()); // R
System.out.println("stack: " + stack); // stack: []
try {
stack.pop();
} catch (EmptyStackException e) {
System.out.println("empty stack"); //empty stack
}
查询元素在栈中的位置;多个相同元素返回离栈顶最近的;没有则返回-1
Stack<Character> stack = new Stack<Character>();
stack.push('E');
stack.push('A');
stack.push('W');
stack.push('A');
stack.push('Q');
stack.push('R');
System.out.println(stack.search('R')); //1
System.out.println(stack.search('Q')); //2
System.out.println(stack.search('A')); //3
System.out.println(stack.search('D')); // -1