在Java中,可以通过继承java.util.Stack
类或实现java.util.Deque
接口来自定义一个栈(Stack)类。这里我们给出两种方法的示例:
方法一:继承java.util.Stack
类
import java.util.Stack;
public class MyStack<T> extends Stack<T> {
// 在这里添加自定义的方法和属性
}
方法二:实现java.util.Deque
接口
import java.util.ArrayDeque;
import java.util.Deque;
public class MyStack<T> implements Deque<T> {
private ArrayDeque<T> deque = new ArrayDeque<>();
// 实现Deque接口的方法
@Override
public void push(T item) {
deque.push(item);
}
@Override
public T pop() {
return deque.pop();
}
@Override
public T peek() {
return deque.peek();
}
@Override
public boolean empty() {
return deque.empty();
}
@Override
public int size() {
return deque.size();
}
// 在这里添加自定义的方法和属性
}
使用自定义栈类:
public class Main {
public static void main(String[] args) {
MyStack<Integer> myStack = new MyStack<>();
myStack.push(1);
myStack.push(2);
myStack.push(3);
System.out.println("栈的大小:" + myStack.size());
System.out.println("栈顶元素:" + myStack.peek());
System.out.println("弹出栈顶元素:" + myStack.pop());
}
}