Лучший способ скопировать из одного массива в другой
Когда я запускаю следующий код, ничего не копируется - что я делаю не так?
Кроме того, это лучший / самый эффективный способ копирования данных из одного массива в другой?
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()
, Смотрите эту ветку.
Или тот, который вы разместили, если вы измените направление назначения в цикле.