当前位置:首页 > 后端开发 > 正文

Java函数如何调用数组?

在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)。

    Java函数如何调用数组?  第1张

  • 空指针异常
    未初始化的数组调用会抛出 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版). 机械工业出版社

0