Как правильно скопировать 10 элементов из массива list [], в массивы array [],array2[]? Я так понимаю должны быть специальные методы?
int list[]=new int[20];
int array[]=new int[10];
int array2[]=new int[10];
Ответы (3 шт):
for (int i = 0; i < list.length; i++) {
int n = list[i];
if (i < 10) {
array[i] = n;
} else {
array2[i] = n;
}
}
List<Integer> list = Arrays.asList(2, 4, 5, 3, 5, 6, 3, 5, 6, 7, 3, 5, 6, 3, 6, 3, 5, 6, 7, 3);
List<Integer> array1 = list.subList(0,10);
List<Integer> array2 = list.subList(11,20);
Копирование в цикле не рекомендую - много кода и есть шанс допустить ошибку. Переводить в коллекцию аналогично - только лишние объекты без толку плодить. У JAVA из коробки есть способы копировать массивы. В вашем случае подойдет такой :
System.arraycopy(list, 0, array, 0, 10);
System.arraycopy(list, 10, array2, 0, 10);
Кроме того, существует Arrays.copyOf(). Разница в том, что в последний передается только исходный массив, а уже метод возвращает новый скопированный. В вашем случае целевой массив уже существует, поэтому используем System.arraycopy(), у него тип возвращаемого значения VOID, потому как оба массива (из которого копируется и в который копируется) передаются в аргументы метода.