【问题标题】:Best way to copy from one array to another [closed]从一个数组复制到另一个数组的最佳方法[关闭]
【发布时间】:2011-06-30 15:55:07
【问题描述】:

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

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

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

【问题讨论】:

  • 你看到了什么问题?您的代码看起来不错(您在寻找 System.arraycopy() 吗?)
  • @Mimi, @rsp - 他的代码中有一个错误!

标签: java arrays


【解决方案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() 非常相似。见this thread

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

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

【讨论】:

    【解决方案2】:

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

    a[i] = b[i];

    应该是:

    b[i] = a[i];

    【讨论】:

      【解决方案3】:

      使用Arrays.copyOf我的朋友。

      【讨论】:

        猜你喜欢
        • 2015-10-31
        • 1970-01-01
        • 2017-08-27
        • 2021-07-22
        • 2022-07-05
        • 1970-01-01
        • 2016-09-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多