在Java中,可以通過繼承java.util.Stack
類或?qū)崿F(xiàn)java.util.Deque
接口來自定義一個(gè)棧(Stack)類。這里我們給出兩種方法的示例:
方法一:繼承java.util.Stack
類
import java.util.Stack;
public class MyStack<T> extends Stack<T> {
// 在這里添加自定義的方法和屬性
}
方法二:實(shí)現(xiàn)java.util.Deque
接口
import java.util.ArrayDeque;
import java.util.Deque;
public class MyStack<T> implements Deque<T> {
private ArrayDeque<T> deque = new ArrayDeque<>();
// 實(shí)現(xiàn)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());
}
}