Java 堆栈类
Java 堆栈类
在本教程中,我们将通过示例了解 Java Stack 类及其方法。
Java 集合框架有一个名为 Stack
的类 提供栈数据结构的功能。
Stack
类扩展了 Vector
类。
堆栈实现
在栈中,元素以后进先出的方式存储和访问 方式。即元素被添加到栈顶,从栈顶移除。
创建堆栈
为了创建堆栈,我们必须导入 java.util.Stack
先打包。导入包后,下面是我们如何在 Java 中创建堆栈。
Stack<Type> stacks = new Stack<>();
这里,Type
表示堆栈的类型。例如,
// Create Integer type stack
Stack<Integer> stacks = new Stack<>();
// Create String type stack
Stack<String> stacks = new 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 Stack
animals.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 Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Initial Stack: " + animals);
// Remove element stacks
String 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 Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Access element from the top
String 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 Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Search an element
int 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 Stack
animals.push("Dog");
animals.push("Horse");
animals.push("Cat");
System.out.println("Stack: " + animals);
// Check if stack is empty
boolean 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中的栈数据结构。
要了解更多信息,请访问:
- Java ArrayDeque
- 为什么使用 Deque 而不是 Stack?
java