Не работает условие: если длина массива нечетная, то большую часть нужно скопировать в первый подмассив. У меня копируется во второй.
Сижу рассуждаю, result - это массив массивов, то есть в массиве result есть 2 ссылки на 2 массива. Возможно при их заполнении нельзя так перепрыгнуть из одного массива в другой ( +1), и тогда условие if - else нужно делать на этапе разделения массива array и там прибавлять единичку? Или все таки есть способ решить эту задачу с if - else во втором условии, где мы заполняем массив массивов?
Спасибо!
package com.javarush.task.pro.task05.task0517;
import java.util.Arrays;
/*
Делим массив
*/
public class Solution {
public static int[][] result = new int[2][];
public static int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
public static void main(String[] args) {
//напишите тут ваш код
//Arrays.copyOfRange(int[], int, int)
//метод, который делит массив array на два подмассива и заполняет ими двухмерный массив result.
int resultLength = result.length;
int length = array.length;
int[] array1 = Arrays.copyOfRange(array, 0, length/2); //разделяем массив array (вытаскиваем 1ую половину)
int[] array2 = Arrays.copyOfRange(array, length/2, length); //разделяем массив array (вытаскиваем 2ую половину)
// заполняем массив result
if ((resultLength % 2 ) == 0) { // Если длина массива четная
Arrays.fill(result, 0, result.length/2, array1);
Arrays.fill(result, result.length/2, result.length, array2);
} else { //Если длина массива нечетная, то большую часть копируем в первый подмассив
Arrays.fill(result, 0, (result.length/2) + 1, array1);
Arrays.fill(result, (result.length/2) + 1, result.length, array2);
}
System.out.println(Arrays.deepToString(result));
}
}