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

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

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

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

3 ответа

Решение

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

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

Который копирует содержимое исходного массива в целевой массив, который вы выделяете сами.

Или же

b = a.clone();

который работает очень похоже на Arrays.copyOf(), Смотрите эту ветку.

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

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

Другие вопросы по тегам