Skip to content

Java堆栈类

Java集合框架有一个名为Stack的类,提供了堆栈数据结构的功能。

Stack类扩展了Vector类。

Java Stack类扩展Vector类


堆栈的实现

在堆栈中,元素按照后进先出的方式存储和访问。也就是说,元素被添加到堆栈的顶部,并从堆栈的顶部移除。

堆栈数据结构的工作原理


创建堆栈

为了创建一个堆栈,我们首先必须导入java.util.Stack包。一旦我们导入了这个包,下面是如何在Java中创建一个堆栈的方法。

java
Stack<Type> stacks = new Stack<>();

这里,Type表示堆栈的类型。例如,

java
// 创建整数类型的堆栈
Stack<Integer> stacks = new Stack<>();

// 创建字符串类型的堆栈
Stack<String> stacks = new Stack<>();

堆栈方法

由于Stack类扩展了Vector类,它继承了所有的Vector方法。要了解不同的Vector方法,请访问Java Vector Class

除了这些方法之外,Stack类还包括5个与Vector不同的方法。


push()方法

要将元素添加到堆栈的顶部,我们使用push()方法。例如,

java
import java.util.Stack;

class Main {
    public static void main(String[] args) {
        Stack<String> animals= new Stack<>();

        // 向堆栈中添加元素
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");

        System.out.println("Stack: " + animals);
    }
}

输出

Stack: [Dog, Horse, Cat]

pop()方法

要从堆栈的顶部移除一个元素,我们使用pop()方法。例如,

java
import java.util.Stack;

class Main {
    public static void main(String[] args) {
        Stack<String> animals= new Stack<>();

        // 向堆栈中添加元素
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Initial Stack: " + animals);

        // 移除堆栈中的元素
        String element = animals.pop();
        System.out.println("Removed Element: " + element);
    }
}

输出

Initial Stack: [Dog, Horse, Cat]
Removed Element: Cat

peek()方法

peek()方法返回堆栈顶部的对象。例如,

java
import java.util.Stack;

class Main {
    public static void main(String[] args) {
        Stack<String> animals= new Stack<>();

        // 向堆栈中添加元素
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);

        // 从顶部访问元素
        String element = animals.peek();
        System.out.println("Element at top: " + element);
    }
}

输出

Stack: [Dog, Horse, Cat]
Element at top: Cat

search()方法

要在堆栈中搜索一个元素,我们使用search()方法。它返回该元素距离堆栈顶部的位置。例如,

java
import java.util.Stack;

class Main {
    public static void main(String[] args) {
        Stack<String> animals= new Stack<>();

        // 向堆栈中添加元素
        animals.push("Dog");
        animals.push("Horse");
        animals.push("Cat");
        System.out.println("Stack: " + animals);

        // 搜索一个元素
        int position = animals.search("Horse");
        System.out.println("Position of Horse: " + position);
    }
}

输出