容器适配器stack 案例代码
时间: 2024-10-12 11:10:31 浏览: 25
容器适配器(Container Adapters),如Stack,是一种设计模式,它允许将现有的数据结构封装到另一种特定的接口中,以便于在需要栈操作的上下文中使用。例如,在Java中,我们可以创建一个基于ArrayList的Stack实现:
```java
import java.util.ArrayList;
import java.util.Stack;
public class ArrayListBasedStack<T> implements Stack<T> {
private ArrayList<T> elements;
public ArrayListBasedStack() {
elements = new ArrayList<>();
}
// 实现Stack接口的方法
@Override
public boolean isEmpty() {
return elements.isEmpty();
}
@Override
public T peek() {
if (isEmpty()) {
throw new EmptyStackException();
}
return elements.get(elements.size() - 1);
}
@Override
public T pop() {
if (isEmpty()) {
throw new EmptyStackException();
}
T top = peek();
elements.remove(elements.size() - 1);
return top;
}
@Override
public void push(T item) {
elements.add(item);
}
@Override
public int size() {
return elements.size();
}
}
```
在这个例子中,`ArrayListBasedStack`是一个实现了`Stack`接口的类,它的内部实际上是一个`ArrayList`。通过这种方式,我们可以在需要栈功能的地方直接使用这个类,而不必关心底层的具体实现。
阅读全文