上一篇                     
               
			  Java函数如何调用数组?
- 后端开发
- 2025-06-20
- 2246
 在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版). 机械工业出版社
 
 
 
			 
			 
			 
			 
			 
			 
			 
			