数组的创建与使用

数组是相同类型数据的集合,长度一旦创建就固定不变。

数组操作
// 声明和创建数组(方式1:指定长度)
int[] numbers = new int[5];  // 长度5,默认值为0

// 声明和创建数组(方式2:直接初始化)
int[] scores = {85, 90, 78, 92, 88};
String[] fruits = {"苹果", "香蕉", "橙子"};

// 访问和修改元素(索引从 0 开始)
numbers[0] = 10;     // 第一个元素赋值为 10
numbers[4] = 50;     // 最后一个元素赋值为 50
int first = numbers[0];  // 读取第一个元素:10

// 数组长度(不可改变)
int len = numbers.length;  // 5

// 遍历数组(方式1:for 循环)
for (int i = 0; i < numbers.length; i++) {
    System.out.println("索引 " + i + ": " + numbers[i]);
}

// 遍历数组(方式2:增强 for)
for (int num : numbers) {
    System.out.println(num);
}

二维数组

数组的元素可以是数组,这就形成了二维数组,常用于矩阵、表格等场景。

二维数组
// 创建二维数组(3行3列)
int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// 访问元素:matrix[行][列]
int center = matrix[1][1];  // 5(第2行第2列)

// 遍历二维数组(嵌套循环)
for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
        System.out.print(matrix[i][j] + " ");
    }
    System.out.println();
}
⚠️ 注意

数组下标从 0 开始。访问越界(如访问索引为 5 的 5 元素数组)会抛出 ArrayIndexOutOfBoundsException。数组长度是固定的,不能动态扩容。

课后练习

以下代码的执行结果是什么?

代码片段
int[] arr = new int[3];
arr[0] = 10;
arr[1] = 20;
System.out.println(arr[1] + arr.length);
A 23
B 23 是错误的,正确答案是... 等等,让我重新算:arr[1]=20, length=3,所以 20+3=23
C 编译错误
D 30