Лучший способ копирования из одного массива в другой

Когда я запускаю следующий код, ничего не копируется - что я делаю неправильно?

Кроме того, является ли это лучшим/наиболее эффективным способом копирования данных из одного массива в другой?

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

Я думаю, что ваше задание назад:

a[i] = b[i];

должен быть:

b[i] = a[i];

Ответ 2

Существует множество решений:

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(). См. этот поток.

Или тот, который вы разместили, если вы измените направление назначения в цикле.

Ответ 3

Используйте Arrays.copyOf мой друг.