import java.util.ArrayDeque; import java.util.Deque; import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Deque<Integer> stackDeque = new ArrayDeque<>(); Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); for (int i = 0; i < n; i++) { String string = scanner.next(); if (string.equals("push")) { stackDeque.push(scanner.nextInt()); } else if (string.equals("pop")) { if (stackDeque.size() > 0) { stackDeque.pop(); } else { System.out.println("Empty"); } } else if (string.equals("query")) { if (!stackDeque.isEmpty()) { System.out.println(stackDeque.peek()); } else { System.out.println("Empty"); } } else if (string.equals("size")) { System.out.println(stackDeque.size()); } } } }
使用栈推荐用Deque创建而不是Stack,后续pop()和peek()操作之前都得判断是否为空,如果为空还使用这两个函数,会报错