方法一 使用ArrayList进行模拟

import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        List<Integer> list = new ArrayList<>();
        int n = in.nextInt();
        for (int i = 0; i < n; i++) {
            String str = in.next();
            switch (str) {
                case "push":
                    list.add(in.nextInt());


                    break;
                case "pop":
                    if (list.isEmpty()) {
                        System.out.println("Empty");
                    } else {
                        
                        list.remove(list.size() - 1);
                    }
                    break;
                case "query":
                    if (list.isEmpty()) {
                        System.out.println("Empty");
                    } else {
                        System.out.println(list.get(list.size() - 1));
                        
                    }
                    break;
                case "size":
                    System.out.println(list.size());
                    break;

            }

        }
    }
}

方法二 使用ArrayDeque

java.util.ArrayDeque (官方推荐,比 java.util.Stack 更高效) 

import java.util.Scanner;
import java.util.Deque;
import java.util.ArrayDeque;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Deque<Integer> stack=new ArrayDeque<>();
        int n = in.nextInt();
        for (int i = 0; i < n; i++) {
            String str = in.next();
            switch (str) {
                case "push":
                    stack.push(in.nextInt());


                    break;
                case "pop":
                    if (stack.isEmpty()) {
                        System.out.println("Empty");
                    } else {
                        
                        stack.pop();
                    }
                    break;
                case "query":
                    if (stack.isEmpty()) {
                        System.out.println("Empty");
                    } else {
                        System.out.println(stack.peek());
                        
                    }
                    break;
                case "size":
                    System.out.println(stack.size());
                    break;

            }

        }
    }
}