在上一篇文章中,我们介绍了Java基础语法之控制流(Java基础语法之控制流),数组是Java中用来存储固定大小的相同类型元素的容器。它是存储在连续内存位置的一种数据结构。通过数组,我们可以很方便地使用一个变量名来引用多个元素。
1. 数组的声明与初始化
在Java中,数组的声明与初始化有多种方式。
-
声明数组
int[] array1; // 推荐方式 int array2[]; // 合法但不推荐
-
初始化数组
int[] array1 = new int[5]; // 创建一个长度为5的int型数组 int[] array2 = {1, 2, 3, 4, 5}; // 直接初始化
-
注意事项:
- 数组的大小在创建后不可改变。
- 数组索引从0开始,最大索引为
数组长度-1
。 - 访问越界索引会抛出
ArrayIndexOutOfBoundsException
异常。
2. 数组的使用
-
访问数组元素
public class ArrayExample { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; System.out.println("第一个元素: " + array[0]); System.out.println("第三个元素: " + array[2]); } }
-
修改数组元素
public class ArrayModifyExample { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; array[2] = 10; // 将第三个元素修改为10 System.out.println("修改后的第三个元素: " + array[2]); } }
3. 数组的遍历
-
使用
for
循环遍历数组public class ArrayTraversal { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; for (int i = 0; i < array.length; i++) { System.out.println("元素 " + i + ": " + array[i]); } } }
-
使用增强型
for
循环遍历数组public class EnhancedForLoopTraversal { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; for (int element : array) { System.out.println("元素: " + element); } } }
-
注意事项:
- 在遍历数组时,注意不要越界访问。
4. 多维数组
-
声明和初始化二维数组
int[][] array = new int[3][4]; // 创建一个3x4的二维数组 int[][] array2 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 直接初始化
-
访问二维数组元素
public class MultiDimensionalArray { public static void main(String[] args) { int[][] array = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; System.out.println("第一行第二个元素: " + array[0][1]); } }
-
遍历二维数组
public class MultiDimensionalArrayTraversal { public static void main(String[] args) { int[][] array = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { System.out.println("元素 [" + i + "][" + j + "]: " + array[i][j]); } } } }
-
注意事项:
- 多维数组可以是不规则的(即每行可以有不同的列数)。
5. 数组与方法
-
将数组作为方法参数
public class ArrayAsParameter { public static void main(String[] args) { int[] array = {1, 2, 3, 4, 5}; printArray(array); } public static void printArray(int[] array) { for (int element : array) { System.out.println("元素: " + element); } } }
-
从方法中返回数组
public class ArrayAsReturnValue { public static void main(String[] args) { int[] array = createArray(); for (int element : array) { System.out.println("元素: " + element); } } public static int[] createArray() { return new int[]{1, 2, 3, 4, 5}; } }
6. 知识结构图解
7. 示例代码整合
以下示例代码展示了数组的各种使用方法:
public class ArrayExamples {
public static void main(String[] args) {
// 声明和初始化数组
int[] array1 = new int[5];
int[] array2 = {1, 2, 3, 4, 5};
// 访问和修改数组元素
System.out.println("第一个元素: " + array2[0]);
array2[2] = 10;
System.out.println("修改后的第三个元素: " + array2[2]);
// 遍历数组
for (int i = 0; i < array2.length; i++) {
System.out.println("元素 " + i + ": " + array2[i]);
}
// 使用增强型 for 循环遍历数组
for (int element : array2) {
System.out.println("元素: " + element);
}
// 声明和初始化二维数组
int[][] array3 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 访问和遍历二维数组
System.out.println("第一行第二个元素: " + array3[0][1]);
for (int i = 0; i < array3.length; i++) {
for (int j = 0; j < array3[i].length; j++) {
System.out.println("元素 [" + i + "][" + j + "]: " + array3[i][j]);
}
}
// 将数组作为方法参数
printArray(array2);
// 从方法中返回数组
int[] array4 = createArray();
for (int element : array4) {
System.out.println("元素: " + element);
}
}
public static void printArray(int[] array) {
for (int element : array) {
System.out.println("元素: " + element);
}
}
public static int[] createArray() {
return new int[]{1, 2, 3, 4, 5};
}
}
注意事项总结
- 数组的大小在创建后不可改变。
- 数组索引从0开始,最大索引为
数组长度-1
。 - 访问越界索引会抛出
ArrayIndexOutOfBoundsException
异常。 - 多维数组可以是不规则的(即每行可以有不同的列数)。
结语
数组是Java中重要的基础数据结构,通过掌握数组的声明、初始化、访问、修改和遍历,可以更加高效地处理数据。在接下来的文章中,我们将继续探讨Java中的方法这一概念以及更多Java编程的基础知识,敬请期待!