在 Java 中最早的集合类有 Vector 和 HashMap 两个,所以在这两个类又派生出了 Stack 类 和 Properties 两个常用子类,这两个子类在开发中使用较多,下面介绍它们具体的使用形式。
1. Stack 类
1.1 Stack 类相关基本概念
- 栈是采用先进后出的数据操作方式,每一个栈都包含一个栈顶,每一次出栈都是将栈顶的数据取出。
- 提示:(栈的应用) 在浏览器存在一个“后退”按钮,每次后退都是后退到上一个页面,那么实际上这是一个栈的应用,采用的是一个先进后出的操作。
- Stack 类是 Vector 的子类,Stack 类的定义如下:
public class Stack<E> extends Vector<E>
- Stack 类的常用操作方法如表:
序号 | 方法 | 类型 | 描述 |
---|---|---|---|
1 | public boolean empty() | 普通 | 测试栈是否为空 |
2 | public E peek() | 普通 | 查看栈顶,但不删除 |
3 | public E pop() | 普通 | 出栈,同时删除 |
4 | public E push(E item) | 普通 | 入栈 |
5 | public int search(Object o) | 普通 | 在栈中查找 |
- 实例
package self.learn.stackdemo;
import java.util.Stack;
public class StackDemo {
public static void main(String[] args) {
Stack<String> s = new Stack<String>(); // 实例化 Stack 对象
s.push("A"); // 入栈
s.push("B");
s.push("C");
s.push("D");
System.out.println(s.pop()); // 出栈
System.out.println(s.pop()); // 出栈
System.out.println(s.pop()); // 出栈
System.out.println(s.pop()); // 出栈
System.out.println(s.pop()); // 错误,出栈,出现异常,栈为空
}
}
运行结果截图:
由结果可知,如果栈为空,则无法弹出。