```
// "static void main" must be defined in a public class.
class MyStack {
//棧
private List<Integer> data; // store elements
//用動態數組初始化棧
public MyStack() {
data = new ArrayList<>();
}
//插入一個元素到棧頂,自動將元素添加到最后新的索引上
public void push(int x) {
data.add(x);
}
//看棧是否為空
public boolean isEmpty() {
return data.isEmpty();
}
//根據數組最后一個索引得到棧頂元素
public int top() {
return data.get(data.size() - 1);
}
public boolean pop() {
//為空,不能退棧
if (isEmpty()) {
return false;
}
//移除棧頂元素,為索引最后的元素
data.remove(data.size() - 1);
return true;
}
};
public class Main {
public static void main(String[] args) {
MyStack s = new MyStack();
s.push(1);
s.push(2);
s.push(3);
for (int i = 0; i < 4; ++i) {
if (!s.isEmpty()) {
//打印棧頂元素
System.out.println(s.top());
}
//彈出棧頂元素
System.out.println(s.pop());
}
}
}
```