堆栈是Vector的子类,它实现了标准的后进先出堆栈。
堆栈仅定义默认构造函数,该构造函数创建一个空堆栈。Stack包含Vector定义的所有方法,并添加了一些自己的方法。
Stack( )
除了从其父类Vector继承的方法外,Stack还定义了以下方法-
序号 | 方法与说明 |
---|---|
1 | 布尔值 测试此堆栈是否为空。如果堆栈为空,则返回true;如果堆栈包含元素,则返回false。 |
2 | 对象偷看() 返回位于堆栈顶部的元素,但不删除它。 |
3 | 对象pop() 返回堆栈顶部的元素,并在此过程中将其删除。 |
4 | 对象推送(对象元素) 将元素压入堆栈。元素也被返回。 |
5 | int搜索(对象元素) 在堆栈中搜索元素。如果找到,则返回其与堆栈顶部的偏移量。否则,返回-1。 |
下面的程序说明了此集合支持的几种方法。
import java.util.*; public class StackDemo { static void showpush(Stack st, int a) { st.push(new Integer(a)); System.out.println("push(" + a + ")"); System.out.println("stack: " + st); } static void showpop(Stack st) { System.out.print("pop -> "); Integer a = (Integer) st.pop(); System.out.println(a); System.out.println("stack: " + st); } public static void main(String args[]) { Stack st = new Stack(); System.out.println("stack: " + st); showpush(st, 42); showpush(st, 66); showpush(st, 99); showpop(st); showpop(st); showpop(st); try { showpop(st); } catch (EmptyStackException e) { System.out.println("empty stack"); } } }
输出结果
stack: [ ] push(42) stack: [42] push(66) stack: [42, 66] push(99) stack: [42, 66, 99] pop -> 99 stack: [42, 66] pop -> 66 stack: [42] pop -> 42 stack: [ ] pop -> empty stack