从一个arrays复制到另一个arrays的最佳方式

当我运行以下代码时,没有任何东西被复制 – 我做错了什么?

另外,这是将数据从一个数组复制到另一个数组的最佳/最有效的方法吗?

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]; } } } 

我认为你的任务是倒退的:

a[i] = b[i];

应该:

b[i] = a[i];

有很多解决方案:

 b = Arrays.copyOf(a, a.length); 

其中分配一个新数组,复制a的元素,并返回新数组。

要么

 b = new int[a.length]; System.arraycopy(a, 0, b, 0, b.length); 

将源arrays内容复制到您自己分配的目标arrays中。

要么

 b = a.clone(); 

它的工作原理与Arrays.copyOf()非常相似。 看到这个post 。

或者您发布的那个,如果您在循环中反转赋值的方向。

使用Arrays.copy或我的朋友。