2026-10-22 17:20:01
在 Java 中,由于数组是引用类型,方法中修改数组元素会直接影响原始数组。以下是具体实现方法和注意事项:
一、修改数组的三种方法直接分配新值通过索引直接修改数组元素的值:
int[] arr = new int[]{1, 2, 3};public static void changeArray(int[] arr) { arr[0] = 4; // 修改第一个元素为4}调用后:arr 变为 [4, 2, 3]。
使用 Arrays.fill() 方法通过 Arrays.fill() 填充整个数组为指定值:
import java.util.Arrays;int[] arr = new int[]{1, 2, 3};public static void changeArray(int[] arr) { Arrays.fill(arr, 5); // 所有元素填充为5}调用后:arr 变为 [5, 5, 5]。
遍历数组并更新元素通过循环逐个修改数组元素:
int[] arr = new int[]{1, 2, 3};public static void changeArray(int[] arr) { for (int i = 0; i < arr.length; i++) { arr[i] = i + 10; // 每个元素更新为索引+10 }}调用后:arr 变为 [10, 11, 12]。
引用传递机制Java 方法接收的是数组的引用(内存地址),而非副本。因此,方法内对数组的修改会直接反映到原始数组上。
不可变数组的限制
基本类型数组(如 int[]、double[])可直接修改。
final 修饰的数组:若数组变量被 final 修饰(如 final int[] arr),则不能重新赋值(如 arr = new int[]{}),但可以修改数组内容(如 arr[0] = 1)。
不可变对象数组:若数组元素是不可变对象(如 String),则需替换元素对象才能修改内容。
方法返回数组的影响若方法返回一个数组(如 return arr),返回的数组与原始数组指向同一内存地址,修改返回的数组同样会影响原始数组。
通过以上方法,可以高效地在 Java 方法中修改数组内容。