从一个阵列复制到另一个阵列的最佳方式 [已关闭]

2022-09-02 22:46:12

当我运行以下代码时,不会复制任何内容 - 我做错了什么?

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

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

答案 1

有很多解决方案:

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()

或者您发布的那个,如果您在循环中反转分配的方向:

b[i] = a[i]; // NOT a[i] = b[i];

答案 2

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

a[i] = b[i];

应该是:

b[i] = a[i];