方法一 使用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;
}
}
}
}

京公网安备 11010502036488号