在 Java 中,数组按引用传递,改变数组元素只会在方法内生效;如果需要在方法内修改数组元素并影响原数组,可使用数组复制操作,通过复制一份新数组传递给方法,对新数组的修改会反映到原数组。
Java 数组的传递
数组的传递方式
在 Java 中,数组是引用类型,因此在传递数组时,实际传递的是数组的引用,而不是数组本身。
按值传递
Java 中不存在按值传递数组。当将数组作为参数传递给方法时,方法内得到的是该数组的引用副本,对数组元素的修改只会在方法内生效,不会影响原数组。
数组复制
如果需要在方法内对数组元素进行修改并影响原数组,可以使用数组复制操作。通过 System.arraycopy() 方法或 Arrays.copyOf() 方法可以将原数组复制一份到新的数组中,传递新的数组给方法。
代码示例
public class ArrayDemo { public static void mAIn(String[] args) { int[] originalArray = {1, 2, 3}; // 按值传递数组 changeArray(originalArray); // 打印原数组 System.out.println("Original array: " + Arrays.toString(originalArray)); // 输出:1, 2, 3 // 数组复制 int[] copiedArray = Arrays.copyOf(originalArray, originalArray.length); // 按值传递数组复制 changeArray(copiedArray); // 打印原数组 System.out.println("Original array: " + Arrays.toString(originalArray)); // 输出:1, 2, 3 // 打印数组复制 System.out.println("Copied array: " + Arrays.toString(copiedArray)); // 输出:4, 5, 6 } public static void changeArray(int[] array) { for (int i = 0; i <p>在上面的示例中,changeArray() 方法按值传递数组。对数组元素的修改仅影响方法内的副本,原数组不会发生变化。而通过数组复制,方法内对元素的修改会反映到原数组中,因为原数组和复制后的数组指向同一块内存区域。</p>
登录后复制
© 版权声明
文章版权归作者所有,未经允许请勿转载。
【小浪云服务商 - 服务器12元起 - 挂机宝5元起】
THE END
暂无评论内容