查看java的API文档,Stack继承Vector类。
栈的特点是后进先出。
API中Stack自身的方法不多,基本跟栈的特点有关。
import java.util.Stack;
public class StackTest {
public static void main(String[] args) {
Stack stack = new Stack();
System.out.println("now the stack is " + isEmpty(stack));
stack.push("1");
stack.push("2");
stack.push("3");
stack.push("4");
stack.push("5");
System.out.println("now the stack is " + isEmpty(stack));
System.out.println(stack.peek());
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.search("2"));
}
public static String isEmpty(Stack stack) {
return stack.empty() ? "empty" : "not empty";
}
}输出为:
now the stack is not empty 5 5 4 2
下面这个例子代码演示如何使用Stack类,Stack堆栈添加移除元素的原则是后进先出。 Stack类的主要方法是:push(),peek(),pop(),empty(),search().
说明如下 - push() - 在栈顶添加元素 - peek() - 返回栈顶的元素,但是不删除栈顶元素 - pop() - 和peek()一样返回栈顶元素,但是要将栈顶元素移除掉 - empty() - 检查栈是否为空 - search() - 返回元素在堆栈中的位置
如下示例代码
//Create the Stack instance and add a couple of elements to it Stack stack = new Stack(); String s1 = "element 1"; String s2 = "element 2"; stack.push(s1); stack.push(s2);
现在栈中有两个元素,栈顶应该是element 2,我们可以通过peek方法看栈顶的元素:
System.out.println(stack.peek());
输出:
element 2
要看element 1的位置需要使用search方法:
//Find position of a certain element
int pos = stack.search("element 1");
System.out.println(pos);上面代码将输出:
2
要移除栈顶的元素应该用pop()方法:
System.out.println(stack.pop()); System.out.println(stack.pop());
输出:
element 2 element 1
在上一步中栈中的两个元素都被pop了,现在我们看下empty()方法是否返回true
System.out.println(stack.empty());
输出:
true
总结:
栈是Vector的一个子类,它实现了一个标准的后进先出的栈。
堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。
Stack()
除了由Vector定义的所有方法,自己也定义了一些方法:
| 序号 | 方法描述 |
|---|---|
| 1 | boolean
empty() 测试堆栈是否为空。 |
| 2 | Object
peek( ) 查看堆栈顶部的对象,但不从堆栈中移除它。 |
| 3 | Object
pop( ) 移除堆栈顶部的对象,并作为此函数的值返回该对象。 |
| 4 | Object
push(Object element) 把项压入堆栈顶部。 |
| 5 | int
search(Object element) 返回对象在堆栈中的位置,以 1 为基数。 |
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
