Java 创建重复阵列
如果我在java中创建一个类似这样的重复数组,是否正确Java 创建重复阵列,java,arrays,Java,Arrays,如果我在java中创建一个类似这样的重复数组,是否正确 int [] array = { 10, 20 , 5 , 67 , 4} ; int [] d_array = array ; 这并不是在创建重复的数组。这将创建对现有数组的新引用。修改一个将修改“两者” 您需要研究创建某个数组的新复制实例的方法。请参阅Kon的答案。试试这个: int [] array = new int[]{ 10, 20 , 5 , 67 , 4} ; int [] d_array =
int [] array = { 10, 20 , 5 , 67 , 4} ;
int [] d_array = array ;
这并不是在创建重复的数组。这将创建对现有数组的新引用。修改一个将修改“两者”
您需要研究创建某个数组的新复制实例的方法。请参阅Kon的答案。试试这个:
int [] array = new int[]{ 10, 20 , 5 , 67 , 4} ;
int [] d_array = array.clone();
在这种情况下,如果更改第一个数组中的任何项目,则第二个数组中的项目将更改,例如,如果您写入:
array[0] = 5;
然后d_数组[0]也将变为5
要在不具有相同引用的情况下复制阵列,请替换:
int [] d_array = array ;
与
这不是重复的数组;这是指向同一数组的两个变量。我建议使用
System.arrayCopy()
而不是clone()
。克隆有很多缺点。请参阅Joshua Bloch的《高效Java》,了解一些避免克隆的原因。这些原因都不适用于数组,但也有arrays.copyOf
,它比arraycopy
更易于使用。好吧,因为在这个问题上,使用什么并不重要:是的,你们都是对的。另外注意:这对基本对象引用和不可变对象引用的数组很有用,因为System.arrayCopy
提供了数组的浅拷贝。
int [] d_array = array.clone();