AP Computer Science A

数据集合

遍历数组与 ArrayList

选择集合、处理边界,并在删除元素时避免遗漏。

示例使用 Java。可在这里阅读和追踪,在 Java 环境中运行;工作室执行的是伪代码。

追踪大小与有效位置

数组长度固定,ArrayList 的大小可改变。两者都从 0 开始索引,最后有效位置分别是 length - 1 与 size() - 1。二维数组先按行、再按列索引。

删除 ArrayList 元素后,后面的元素向左移动。正向遍历删除时,下一个元素可能移动到刚访问的位置。倒序遍历可以避免遗漏。

import java.util.ArrayList;
public class Demo {
    public static void main(String[] args) {
        ArrayList<Integer> scores = new ArrayList<Integer>();
        scores.add(40); scores.add(35); scores.add(70);
        for (int i = scores.size() - 1; i >= 0; i--) {
            if (scores.get(i) < 50) { scores.remove(i); }
        }
        System.out.println(scores);
    }
}

测试遍历过程

示例输出 [70]。还应测试空集合、全部匹配和连续匹配的元素。遍历二维数组时使用每一行自己的长度,不要假设所有行的列数相同。

从文本文件读取数据时,应把解析与分析分开。加入集合前检查缺失或格式错误的值。遍历正确不能弥补对输入数据的错误假设。

自我检测

为什么正向删除循环可能漏掉两个相邻低分中的一个?查看答案

删除第一个后,第二个向左移,而循环又增加索引,因此跳过了它的新位置。

编写这些课程时使用的参考资料

我们在编写本课程时参考了这些官方文件,用以确定考纲结构和课程要求。

College Board · 2025 年秋季起适用