思路:

在本题中,我们使用 ArrayList 结构存放数据,而不直接使用 int[] 结构存放数据,主要是因为后者 初始化 要开辟很大的 内存空间,不然后续如果加入 太多 的数据,存不下 了怎么办。与此同时,我们还要维护一个 指针,它永远指向当前的 队头

  1. push 操作,没啥好说的,直接调用 add 方法即可。
  2. pop 操作,需要返回 当前指针 指向位置的元素。同时,指针 向后移动一位
  3. front 操作和 pop 操作类似,区别在于,不需要 移动指针的位置。
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = Integer.valueOf(scan.nextLine().trim());
        ArrayList<String> ans = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            String[] operator = scan.nextLine().split(" ");
            if ("push".equals(operator[0])) {
                push(operator[1]);
            } else if ("pop".equals(operator[0])) {
                ans.add(pop());
            } else {
                ans.add(front());
            }
        }
        for (String str : ans) {
            System.out.println(str);
        }
    }
    public static ArrayList<String> arr = new ArrayList<>();
    public static int index = 0;
    public static void push(String num) {
        arr.add(num);
    }
    public static String pop() {
        return index == arr.size() ? "error" : arr.get(index++);
    }
    public static String front() {
        return index == arr.size() ? "error" : arr.get(index);
    }
}