当我运行以下代码时,没有任何内容被复制 - 我做错了什么?
另外,这是将数据从一个数组复制到另一个数组的最佳/最有效的方法吗?
public class A {
public static void main(String args[]) {
int a[] = { 1, 2, 3, 4, 5, 6 };
int b[] = new int[a.length];
for (int i = 0; i < a.length; i++) {
a[i] = b[i];
}
}
}
答案 0 :(得分:82)
有很多解决方案:
b = Arrays.copyOf(a, a.length);
分配一个新数组,复制a
的元素,并返回新数组。
或者
b = new int[a.length];
System.arraycopy(a, 0, b, 0, b.length);
将源数组内容复制到您自己分配的目标数组中。
或者
b = a.clone();
非常像Arrays.copyOf()
。请参阅this thread。
或者您发布的那个,如果您在循环中反转分配的方向。
答案 1 :(得分:18)
我认为你的任务是倒退的:
a[i] = b[i];
应该是:
b[i] = a[i];
答案 2 :(得分:8)
使用Arrays.copyOf我的朋友。