用程序来说明一切吧
package com.tianyu.summer;
/**
* @author Summer
*
*/
import java.util.*;
public class StackTest {
public StackTest() {
Stack stack = new Stack();
Boolean bool = Boolean.TRUE;
Character character = new Character('$');
/**
* 堆栈压栈时必须压入Object类型, 所以前面定义的类型全部是是Object的子类
*/
try {
stack.push(bool);
printStack(stack);
stack.push(character);
printStack(stack);
/**
* 当要弹出堆栈的时候不需要带参数 因为堆栈是又一定的弹出规律的,如果自带参数程序会出错
*/
stack.pop(); //
printStack(stack);
stack.pop();
printStack(stack);
stack.pop();
} catch (EmptyStackException e) {
/**
* 抛出 java.util.EmptyStackException at java.util.Stack.peek(Unknown
* Source) at java.util.Stack.pop(Unknown Source) at
* com.tianyu.summer.StackTest. <init>(StackTest.java:31) at
* com.tianyu.summer.StackTest.main(StackTest.java:64)
* 因为堆栈为空,所以不能再进行出栈操作
*/
e.printStackTrace();
}
}
public void printStack(Stack stack) {
if (stack.isEmpty()) {
System.out.println("堆栈为空");
} else {
System.out.print("堆栈包含:");
Enumeration items = stack.elements();
while (items.hasMoreElements()) {
System.out.print(items.nextElement() + " ");
}
System.out.print("/n");
}
}
public void removeStack(Stack stack) {
if (stack.isEmpty()) {
System.out.println("堆栈为空");
} else {
System.out.print("堆栈包含:");
Enumeration items = stack.elements();
while (items.hasMoreElements()) {
System.out.print(items.nextElement() + " ");
}
System.out.print("/n");
}
}
public static void main(String[] args) {
new StackTest();
}
}