Массивы зло(
Кто-нибудь, подскажите где их можно еще потренироваться писать, кроме javarash.
Или какое-нибудь внятное объяснение логики/алгоритма написания массивов
Anonymous #3218142
1 уровень
Тренировка массивов
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
28 декабря 2022, 19:55
В массивах нет ничего, что не поддавалось бы пониманию или объяснению. Массивы даже не содержат какой-то особой JAVA- или ООП-специфики, их функционал одинаков практически в любом языке программирования.
Поэтому я немного затрудняюсь с тем, чтобы подсказать тебе с тем, как можно потренироваться их писать, потому что не совсем понимаю, что ты имеешь в виду, но могу попробовать объяснить тебе ещё раз своими словами, а ты можешь задать уточняющие вопросы по тем моментам, которые для тебя остаются непонятыми.
Итак, массив - это объект особого типа, который может хранить в себе ссылку на несколько однородных объектов. Под однородными я подразумеваю объекты одного типа.
Например массив типа String[] хранит в себе объекты* типа String, массив типа int[] хранит в себе числа (int), а массив типа Cat[] хранит в себе объекты типа Cat.
* чтобы понять разницу между тем, когда переменная содержит в себе сам объект, а когда - ссылку на объект, можешь почитать про примитивные и ссылочные типы данных в Java. В контексте нашего вопроса это не имеет принципиального значения.
Итак, чтобы понять, данные какого типа могут храниться в массиве, надо просто убрать одни квадратные скобки у его типа, и это будет типом данных, который может содержаться в обсуждаемом массиве. Я говорю "одни скобки", потому что массив - это тоже объект, который можно хранить в другом массиве. Например, int[][] - это массив массивов чисел (убираем одни скобки, и получаем, что каждый элемент этого массива - int[], т.е. массив чисел).
С типами хранимых данных разобрались. Сколько элементов может храниться в массиве? Это указывается при инициализации массива. Например, Выше я привёл оба способа инициализации массива. Продолжение ниже
0
Anonymous #3218142Expert
28 декабря 2022, 20:10
Да, я не понимаю как в массивах составлять циклы.
Красным обведено - как можно было понять, что нужно написать этот код так.
Нет понимания как это составить.
И это только один пример, но и с другими задачами аналогичная ситуация
![]()

0
hidden #598481
28 декабря 2022, 20:37
Выше я привёл оба способа инициализации массива: один с указанием только размера массива, а другой с перечислением всех его элементов. Если мы указываем только размер массива, то каждая ячейка инициализируется значением по умолчанию: нулём для примитивных типов или null для ссылочных типов данных.
Не забывай, что для того, чтобы передать число в качестве размера, не обязательно писать его буквально литералом, как я сделал выше: [26]. Вместо фактического значения может быть указана переменная, хранящая число типа int или метод, который в результате работы возвращает результат типа int:
Массив создан, его размер определён, значит можно сохранить в него такое количество объектов, которое соответствует его размеру. Например, массив размером 5 может хранить в себе 5 элементов. Чтобы обратиться к элементу массива, нужно написать имя массива и в квадратных скобках указать индекс элемента, к которому обращаешься.
например strings[3] будет обращаться к элементу под индексом 3 массива по имени strings. Не забывай, что индексы массива всегда начинаются с нуля, а это значит, что последний индекс будет на 1 меньше, чем размер массива. А размер массива всегда хранится в поле length этого массива. Ты не можешь изменить это поле, его значение задаётся при создании массива:
Как обратиться по очереди ко всем элементам этого массива?
Можно создать цикл, который будет будет перечислять числа в диапазоне от нуля до размера массива, и использовать это число в качестве индекса элемента, к которому обращаемся:Число i изменяется от 0 до размера массива, и мы используем его как индекс элемента.
+1
hidden #598481
28 декабря 2022, 21:17
Чтобы понять, можешь нарисовать на бумажке ряд из квадратиков, пронумеровать их. Каждый квадратик - это элемент массива. Каждый номер - это индекс элемента, внутри квадратика - значение элемента.
Нарисуй стрелочками, какой элемент куда должен попасть. Проследи из какого индекса значение должно попасть в какой. Сколько таких замен нужно произвести.
Запиши весь алгоритм пошагово: чему сначала равно i, что такое i-тый элемент, как получить значение i-того элемента с конца массива, чему оно равно. Описывай пошагово состояние массива в каждый момент времени на бумаге, и так постепенно разберёшься. Ничего сложного в этом на самом деле нет: просто есть число, которое обозначает индекс массива, и которое позволяет обратиться к нужному тебе значению.
0