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

关键特性:
- 固定大小:数组一旦被创建,其大小(即能存放多少个元素)就不能再改变。
- 有序性:元素在数组中是有顺序的,从 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就是数组的长度或大小。
如何初始化数组?
初始化就是为数组中的元素赋初始值。

默认初始化
当你使用 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}
⚠️ 重要:索引越界异常

如果访问的索引超出了数组的范围(负数或大于等于 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> 等集合类,这是数组的一个很好的补充。
