Ответ 1
Я думаю, что ваше задание назад:
a[i] = b[i];
должен быть:
b[i] = a[i];
Когда я запускаю следующий код, ничего не копируется - что я делаю неправильно?
Кроме того, является ли это лучшим/наиболее эффективным способом копирования данных из одного массива в другой?
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];
}
}
}
Я думаю, что ваше задание назад:
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.copyOf мой друг.