上一篇
Java函数如何调用数组?
- 后端开发
- 2025-06-20
- 4573
在Java中调用数组需先声明并初始化,通过索引访问元素,如array[index],可使用循环遍历数组,或直接操作特定位置元素,注意数组索引从0开始,避免越界异常。
数组的声明与初始化
声明方式
// 方式1:声明后初始化 int[] arr1; arr1 = new int[5]; // 创建长度为5的int数组(默认值0) // 方式2:声明时初始化 String[] arr2 = new String[3]; // 默认值null // 方式3:直接赋值 double[] arr3 = {1.1, 2.2, 3.3}; // 长度自动为3
多维数组
int[][] matrix = new int[2][3]; // 2行3列 int[][] jagged = {{1,2}, {3,4,5}}; // 锯齿数组
访问与修改数组元素
通过索引(从0开始)直接操作:
int[] scores = {90, 85, 78}; // 读取 int firstScore = scores[0]; // 90 // 修改 scores[1] = 88; // 数组变为 [90, 88, 78]
遍历数组的两种方法
基础for循环
for (int i = 0; i < scores.length; i++) { System.out.println(scores[i]); }
增强for循环(只读)
for (int score : scores) { System.out.println(score); }
数组作为函数参数与返回值
作为参数传递
public static void printArray(int[] arr) { for (int num : arr) { System.out.print(num + " "); } } // 调用 int[] myArr = {10, 20, 30}; printArray(myArr); // 输出: 10 20 30
作为返回值
public static int[] createArray(int size) { return new int[size]; // 返回新数组 }
常见错误与规避
-
数组越界
访问不存在的索引(如arr[5]
访问长度5的数组)会抛出ArrayIndexOutOfBoundsException
。
规避:始终检查索引范围(0 ≤ index < array.length
)。 -
空指针异常
未初始化的数组调用会抛出NullPointerException
。
规避:初始化后再使用:int[] arr = null; // arr[0] = 1; // 错误! arr = new int[3]; // 正确初始化
-
长度不可变
数组创建后长度固定,需扩容时用Arrays.copyOf()
或改用ArrayList
。
工具类辅助操作
java.util.Arrays
提供常用方法:
import java.util.Arrays; int[] arr = {3, 1, 4}; Arrays.sort(arr); // 排序 → [1, 3, 4] String arrStr = Arrays.toString(arr); // 转字符串 → "[1, 3, 4]" int[] copy = Arrays.copyOf(arr, 5); // 复制并扩容为长度5
关键总结
- 数组通过索引访问,索引范围 0 到 length-1。
- 使用
length
属性获取长度(非方法,不加括号)。 - 传递数组给函数时,实际传递的是引用(函数内修改影响原数组)。
- 优先用增强for循环简化遍历,需索引时用基础for循环。
引用说明参考Oracle官方Java教程[1]及《Java核心技术卷I》[2],遵循Java SE规范,实践代码基于JDK 11验证。
[1] Oracle Java Arrays Tutorial
[2] Cay S. Horstmann. Java核心技术卷I(第11版). 机械工业出版社