在本教程中,我们将借助示例学习 Java Stack类及其方法。
Java 集合框架具有一个名为Stack的类,该类提供栈数据结构的功能。
Stack类扩展了Vector类。

Stack实现
在栈中,元素以后进先出的方式存储和访问。 即,元素被添加到栈的顶部,并从栈的顶部移除。

创建Stack
为了创建栈,我们必须首先导入java.util.Stack包。 导入包后,就可以使用 Java 创建栈。
Stack<Type> stacks = new Stack<>();
此处,Type表示栈的类型。 例如,
// Create Integer type stackStack<Integer> stacks = new Stack<>();// Create String type stackStack<String> stacks = new Stack<>();
Stack方法
由于Stack扩展了Vector类,因此它继承了所有方法Vector。 要了解不同的Vector方法,请访问 Java Vector Class 。
除了这些方法之外,Stack类还包括 5 个与Vector区别的方法。
push()方法
要将元素添加到栈的顶部,我们使用push()方法。 例如,
import java.util.Stack;class Main {public static void main(String[] args) {Stack<String> animals= new Stack<>();// Add elements to Stackanimals.push("Dog");animals.push("Horse");animals.push("Cat");System.out.println("Stack: " + animals);}}
输出
Stack: [Dog, Horse, Cat]
pop()方法
要从栈顶部删除元素,我们使用pop()方法。 例如,
import java.util.Stack;class Main {public static void main(String[] args) {Stack<String> animals= new Stack<>();// Add elements to Stackanimals.push("Dog");animals.push("Horse");animals.push("Cat");System.out.println("Initial Stack: " + animals);// Remove element stacksString element = animals.pop();System.out.println("Removed Element: " + element);}}
输出:
Initial Stack: [Dog, Horse, Cat]Removed Element: Cat
peek()方法
peek()方法从栈顶部返回一个对象。 例如,
import java.util.Stack;class Main {public static void main(String[] args) {Stack<String> animals= new Stack<>();// Add elements to Stackanimals.push("Dog");animals.push("Horse");animals.push("Cat");System.out.println("Stack: " + animals);// Access element from the topString element = animals.peek();System.out.println("Element at top: " + element);}}
输出:
Stack: [Dog, Horse, Cat]Element at top: Cat
search()方法
要搜索栈中的元素,我们使用search()方法。 它从栈顶部返回元素的位置。 例如,
import java.util.Stack;class Main {public static void main(String[] args) {Stack<String> animals= new Stack<>();// Add elements to Stackanimals.push("Dog");animals.push("Horse");animals.push("Cat");System.out.println("Stack: " + animals);// Search an elementint position = animals.search("Horse");System.out.println("Position of Horse: " + position);}}
输出:
Stack: [Dog, Horse, Cat]Position of Horse: 2
empty()方法
要检查栈是否为空,我们使用empty()方法。 例如,
import java.util.Stack;class Main {public static void main(String[] args) {Stack<String> animals= new Stack<>();// Add elements to Stackanimals.push("Dog");animals.push("Horse");animals.push("Cat");System.out.println("Stack: " + animals);// Check if stack is emptyboolean result = animals.empty();System.out.println("Is the stack empty? " + result);}}
输出:
Stack: [Dog, Horse, Cat]Is the stack empty? false
使用ArrayDeque而不是Stack
Stack类提供栈数据结构的直接实现。 但是,建议不要使用它。 而是使用ArrayDeque类(实现Deque接口)在 Java 中实现栈数据结构。
要了解更多信息,请访问:
