杰瑞科技汇

Java整数数组如何初始化与遍历?

什么是 Java 整数数组?

在 Java 中,整数数组 是一个可以存放多个 int 类型数据的容器,它是一个对象,属于 java.lang 包。

Java整数数组如何初始化与遍历?-图1
(图片来源网络,侵删)

关键特性:

  • 固定大小:数组一旦被创建,其大小(即能存放多少个元素)就不能再改变。
  • 有序性:元素在数组中是有顺序的,从 0 开始编号,这个编号称为索引
  • 同类型:一个数组中只能存放一种类型的数据,对于整数数组,就是只能存放 int 类型。
  • 连续内存:在底层,数组的元素是存储在连续的内存空间中的。

如何声明和创建整数数组?

声明和创建数组通常有两种方式,它们的效果是相同的。

先声明,再创建

// 1. 声明一个 int 类型的数组变量,名为 myNumbers
int[] myNumbers;
// 2. 创建一个可以存放 5 个 int 元素的数组,并将其引用赋值给 myNumbers
myNumbers = new int[5];

声明并一次性创建

// 声明并直接创建一个可以存放 5 个 int 元素的数组
int[] myNumbers = new int[5];

语法解析:

  • int[]:表示这是一个 int 类型的数组。[] 可以放在类型 int 后面,也可以放在变量名 myNumbers 后面(如 int myNumbers[]),但前者是更推荐、更清晰的写法。
  • new:是 Java 的关键字,用于在内存中创建新的对象(数组也是对象)。
  • int[5]:表示要创建一个能存放 5 个 int 元素的数组,这里的 5 就是数组的长度大小

如何初始化数组?

初始化就是为数组中的元素赋初始值。

Java整数数组如何初始化与遍历?-图2
(图片来源网络,侵删)

默认初始化

当你使用 new int[5] 创建数组后,Java 会自动为所有元素赋予默认值,对于数值类型(如 int),默认值是 0

int[] numbers = new int[3];
// numbers 数组的内容是: [0, 0, 0]

指定值初始化

你可以在创建数组时,直接指定每个元素的值。

// 1. 使用 new 关键字和初始值列表
int[] scores = new int[]{98, 85, 91, 76, 88};
// 2. 更简洁的写法 (推荐)
// 这种写法可以省略 new int[],因为编译器会根据右侧的值自动推断出数组的类型和大小
int[] scores2 = {98, 85, 91, 76, 88};

如何访问和修改数组元素?

通过索引来访问和修改数组中的元素,索引从 0 开始。

  • 获取元素数组名[索引]
  • 修改元素数组名[索引] = 新值;
int[] ages = {20, 25, 30, 35};
// 访问第一个元素 (索引为 0)
int firstAge = ages[0]; // firstAge 的值是 20
// 访问最后一个元素 (索引为 length - 1)
int lastAge = ages[ages.length - 1]; // lastAge 的值是 35
// 修改第二个元素 (索引为 1) 的值
ages[1] = 26; // ages 数组变为 {20, 26, 30, 35}

⚠️ 重要:索引越界异常

Java整数数组如何初始化与遍历?-图3
(图片来源网络,侵删)

如果访问的索引超出了数组的范围(负数或大于等于 length),会抛出 ArrayIndexOutOfBoundsException 异常。

int[] arr = new int[3];
// arr[3] = 100; // 这行代码会抛出 ArrayIndexOutOfBoundsException
// 因为合法的索引范围是 0, 1, 2

如何获取数组长度?

使用数组的 length 属性来获取数组的大小(元素的个数)。

int[] data = {10, 20, 30, 40};
int size = data.length; // size 的值是 4

如何遍历数组?

“遍历”指的是依次访问数组中的每一个元素。

经典的 for 循环

这是最基础、最常用的方式,可以精确控制索引。

String[] names = {"Alice", "Bob", "Charlie"};
System.out.println("使用 for 循环遍历:");
for (int i = 0; i < names.length; i++) {
    System.out.println("索引 " + i + ": " + names[i]);
}

增强 for 循环 (for-each 循环)

当你只需要获取数组中的元素,而不需要关心其索引时,这种方式更简洁、更安全。

String[] names = {"Alice", "Bob", "Charlie"};
System.out.println("\n使用 for-each 循环遍历:");
for (String name : names) {
    System.out.println("名字: " + name);
}

语法解析for (元素类型 变量名 : 数组名),每次循环,变量名会被自动赋值为数组中的下一个元素。


常用操作示例

示例1:计算数组中所有元素的总和

int[] numbers = {5, 10, 15, 20, 25};
int sum = 0;
for (int number : numbers) {
    sum += number; // sum = sum + number;
}
System.out.println("数组元素的总和是: " + sum); // 输出 75

示例2:查找数组中的最大值

int[] values = {12, 45, 8, 27, 33};
int max = values[0]; // 假设第一个元素是最大的
for (int i = 1; i < values.length; i++) {
    if (values[i] > max) {
        max = values[i]; // 如果找到更大的,就更新 max
    }
}
System.out.println("数组中的最大值是: " + max); // 输出 45

示例3:对数组进行排序

Java 提供了 java.util.Arrays 工具类,其中包含了对数组进行排序的方法 sort()

import java.util.Arrays; // 需要导入这个包
int[] scores = {88, 95, 72, 100, 60};
System.out.println("排序前的数组: " + Arrays.toString(scores)); // 需要 Arrays.toString() 来打印数组内容
// 对数组进行升序排序
Arrays.sort(scores);
System.out.println("排序后的数组: " + Arrays.toString(scores)); // 输出 [60, 72, 88, 95, 100]

多维数组(二维数组)

二维数组可以看作是“数组的数组”,常用来表示矩阵或表格。

创建和初始化

// 1. 声明并创建一个 3x4 的二维数组 (3行4列)
int[][] matrix = new int[3][4];
// 2. 直接初始化
int[][] matrix2 = {
    {1, 2, 3, 4},
    {5, 6, 7, 8},
    {9, 10, 11, 12}
};

访问和遍历

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};
// 访问元素:行索引,列索引
int element = matrix[1][2]; // 获取第2行第3列的元素,值为 6
// 遍历二维数组 (使用嵌套的 for-each 循环)
System.out.println("遍历二维数组:");
for (int[] row : matrix) {
    for (int number : row) {
        System.out.print(number + " ");
    }
    System.out.println(); // 换行
}

操作 代码示例 说明
声明 int[] myArray; 声明一个整数数组变量
创建 myArray = new int[10]; 创建一个长度为10的数组
初始化 int[] arr = {1, 2, 3}; 创建并直接赋值
访问元素 int value = arr[0]; 通过索引获取元素
修改元素 arr[0] = 99; 通过索引修改元素
获取长度 int len = arr.length; 使用 length 属性
遍历 for (int i : arr) { ... } 使用 for-each 循环
排序 Arrays.sort(arr); 使用 java.util.Arrays 工具类
打印数组 System.out.println(Arrays.toString(arr)); 使用 Arrays.toString() 格式化输出

掌握这些基础知识,你就可以在 Java 中熟练地使用整数数组了,对于更灵活的、大小可变的集合,Java 还提供了 ArrayList<Integer> 等集合类,这是数组的一个很好的补充。

分享:
扫描分享到社交APP
上一篇
下一篇