这会是深拷贝的一个例子吗?
would this be an example of deep copy?
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 但想保留其原始值以便以后使用它,我收到的提示是使用深层复制。我不知道我的代码是否被认为是深拷贝 ...
a
是 int
(s) 的数组,它们只有一个原始值——所以答案是肯定的。修改 b
(或 c
)不会影响 a
。但是,您可以像
这样使用 Arrays.copyOf(int[], int)
int[] b = Arrays.copyOf(a, a.length);
int[] c = Arrays.copyOf(a, a.length);
Deep copy
术语不能应用于复制普通整数数组。这是关于更复杂的数据结构,例如也可以包含嵌套 objects/collections.
的对象集合
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 但想保留其原始值以便以后使用它,我收到的提示是使用深层复制。我不知道我的代码是否被认为是深拷贝 ...
a
是 int
(s) 的数组,它们只有一个原始值——所以答案是肯定的。修改 b
(或 c
)不会影响 a
。但是,您可以像
Arrays.copyOf(int[], int)
int[] b = Arrays.copyOf(a, a.length);
int[] c = Arrays.copyOf(a, a.length);
Deep copy
术语不能应用于复制普通整数数组。这是关于更复杂的数据结构,例如也可以包含嵌套 objects/collections.