如何在堆区new出一个stack
时间: 2024-10-18 20:24:57 浏览: 24
详谈java 堆区、方法区和栈区
在Java中,Stack并不是一个内置的数据结构,而是属于Java集合框架中Vector类的一个子类,它是实现了Stack接口的。如果你想创建一个栈数据结构,通常会直接使用Stack类或者List接口(如ArrayList)来实现,因为它们已经提供了类似于栈的功能。
例如,如果你想通过List实现一个简单的栈,可以这样做:
```java
import java.util.ArrayList;
public class MyStack {
private ArrayList<Object> stack = new ArrayList<>();
// 添加元素到栈顶
public void push(Object item) {
stack.add(item);
}
// 弹出并返回栈顶元素
public Object pop() {
if (stack.isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
return stack.remove(stack.size() - 1);
}
// 查看栈顶元素但不移除
public Object peek() {
if (stack.isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
return stack.get(stack.size() - 1);
}
// 检查栈是否为空
public boolean isEmpty() {
return stack.isEmpty();
}
}
```
这里并没有在堆区"new"出一个Stack,而是在内存中为其分配了空间。实际上,当你调用`new ArrayList<>();`时,JVM会在堆区为它创建一个新的ArrayList对象。
阅读全文