int[] a = new int[10];
for (int i = 0; i < 10; i++) {
a[i] = randomFill();//randomFill is a method that generates random numbers
}
int[] b = new int[a.length];
for (int j = 0; j < a.length; j++) {
b[j] = a[j]
}
int[] c = new int[a.length];
for(int k = 0; k < a.length; k++) {
c[k] = a[k]
}
数组b和数组c都是数组a的深层副本吗? 我需要修改数组a,但希望保留其原始值,以便我可以在以后使用它,我收到的提示是使用深层复制。我无法判断我的代码是否被视为深层复制......
答案 0 :(得分:3)
a
是int
(s)的数组,它们只有原始值 - 所以答案是肯定的。修改b
(或c
)不会影响a
。但是,您可以使用Arrays.copyOf(int[], int)
之类的
int[] b = Arrays.copyOf(a, a.length);
int[] c = Arrays.copyOf(a, a.length);
答案 1 :(得分:1)
Deep copy
术语无法应用于复制纯整数数组。这是关于更复杂的数据结构,如对象集合,也可以包含嵌套对象/集合。