public static void main(String[] args) {
resultArray = new int[firstArray.length + secondArray.length];
for (int i = 0; i < firstArray.length; i++) {
resultArray[i] = firstArray[i];
}
for (int i = 0; i < secondArray.length; i++) {
resultArray[i + firstArray.length] = secondArray[i];
}
for (int i = 0; i < resultArray.length; i++) {
System.out.print(resultArray[i] + ", ");
}
}
}
Anonymous #3218142
1 уровень
Объясните, пожалуйста, пошагово действия
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
PlancaExpert
20 декабря 2022, 11:33решение
Поскольку размер созданного массива неизменный, расширить массив (объединить массивы) мы может, например, через создание нового и присвоение его элементам значения исходных массивов.
Теперь делаем то же самое для второй половины массива:
И пускаем все элементы в вывод на экран:
UPD:
Коллеги обошли на повороте)
+8
Darkness
20 декабря 2022, 11:24
Объявляется результирующий массив с длиной равной длинам объединяемых массивов.
Объявляется цикл по длине первого массива.
Копируются значения первого массива в результирующий без смещения индекса элементов.
Объявляется цикл по длине второго массива.
Копируются значения второго массива в результирующий со смещения индекса элементов равному длине первого массива.
Объявляется цикл по длине результирующего массива.
Вывод в консоль всех элементов результирующего массива через запятую.
+3
Михаил
20 декабря 2022, 11:22
Всё достаточно просто.
Вначале мы создаём пустой массив int нужного размера. Нужный размер - это сумма размеров исходных массивов.
Потом определяем цикл, в котором будем обходить первый массив. Для этого определяем переменную итерирования int i = 0. Так как нам надо начать с нулевого объекта массива, то i == 0.
Количество итераций равно размеру массива - 1, так как нумерация элементов начинается с ноля. i < firstArray.length. И определяем шаг итерирования, i++, то есть за каждый проход, i будет увеличиваться на единицу.
В теле цикла мы берем значение из ячейки массива по адресу i и сохраняем его в ячейку i созданного массива. Так мы обходим первый массив. Тут всё просто, потому что мы сохраняем один к одному (нулевой элемент к нулевому, первый к первому и так далее).
Когда мы прошли первый массив, объявляем новый цикл для второго. Всё аналогично, разница начинается в теле цикла. Так как часть нового массива уже заполнена данными из первого массива, то мы устанавливаем смещение на размер первого массива: resultArray[i + firstArray.length] и перебираем второй массив сохраняя значения со смещением. Без этого мы бы перезаписали данные, который сохранили из первого массива. Тут у нас происходит запись со смещением, то есть нулевой записывается в десятый, первый в одиннадцатый, второй в двенадцатый и так далее. (в примере я использовал смещение в 10).
Как только обошли второй массив, мы получили новый массив, который содержит данные из первого и второго.
В конце мы обходим новый массив в цикле и выводим каждый его элемент в консоль.
+3