Иногда задание — это просто задание. Без подвоха, и не стоит искать в нём сложности и глубины. Нужно просто сесть и решить. Перед нами — именно такое задание. Смотрите, как все внятно и просто: создайте массив, элементами которого будут списки строк. А потом заполните массив любыми данными и выведите их на экран.
Массив списков строк
- 6
Недоступна
Комментарии (167)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
SWK
30 декабря 2021, 09:40
Тот случай, когда даже заглянув в ответ не понимаешь, почему нужно именно так.
Видимо, это не объясняется примером и куцей теорией. Теории должно бы быть побольше.
Ну, да, так работает. А почему не работает, например:
ArrayList<String>[] result = new ArrayList<String>[3];
0
Александр Горохов
28 сентября 2021, 10:06
Инициализировал массив на 10 элементов, а прописал в методе добавление двух. И не мог понять, чего оно ругается?)))
0
Юлия Java Developer
6 апреля 2021, 14:22
"Иногда задание - просто задание. Без подвоха, и не стоит искать в нём сложности", - говорили они..
+3
Dmitry Panchenko
8 февраля 2021, 12:38
О как, каждый элемент массива листов, нужно инициализировать отдельно:
+4
Тоник ремонт мобильной техники в FixiT-сервис
2 февраля 2021, 07:33
Блин, бесит уже! Есть ведь такая штука, как быстрая инициализация! Почему ей нельзы пользоваться? Валидатор не пропускает решение, где используется вот такой вариант решения:
Создаём аррэйлист <стринг> лист1 = новый аррэйлист<стрин>(данные...данные...данные)
Создаём еще несколько таким же макаром
И уже после этого добавляем готовые списки в новый массив. А так как списки уже готовы, то пытаемся использовать короткую запись:
ArrayList<String>[] result = new ArrayList[]{list1, list2, list3, list4};
И что вы думаете? Идея прекрасно понимает, о чем идет речь; По всем правилам всё должно прекрасно работать, но нет! Валидатор говорит: "ПНХ ПДРС! ДЕЛАЙ ИНДУССКИЙ КОД!"
И приходится писать вот эти вот result[0] = блаблабла - дополнительные несколько по факту ненужных строк.
+5
Маргарита Backend Developer в Сбер
28 января 2021, 10:30
Создай массив, элементами которого будут списки строк.
Мне одной показалось, что это должен быть ArrayList, элементами которого будут ArrayList<String>?
Почему тогда возвращаемое значение у createList() другое?
Или я чего-то не понимаю? +1
Тоник ремонт мобильной техники в FixiT-сервис
2 февраля 2021, 07:35
Нет, должен быть массив [] элементами которого будут списки ArrayList<String>
+1
Mikhail Nartov
16 января 2021, 14:54
Ставь лайк, если проинициализировал массив, но забыл создать каждый список в нем :)
+1
latkova
12 февраля 2021, 19:46
я наоборот :)
0
Anonymous #2337929
23 декабря 2020, 19:10
Вот эта запись
Это массив списков. То есть, элемент массива не строка или число, а всего лишь список (другой массив, но воспринимать его нужно просто как элемент сначала, без усложнения, поэтому лучше называть его сейчас именно "список", чтобы не путаться).
Поэтому, чтобы что-то в этот список добавить, нужно сначала его создать. Как мы обычно создаем списки(для примера):
Только в данной задаче, поскольку мы действуем внутри обычного массива, мы просто заменяем первую часть
на
где i - это индекс элемента нашего основного массива.
А дальше, когда все списки созданы, мы уже спокойно добавляем в них элементы.
Вот такое понимание,наконец, пришло спустя два дня размышлений над этой конструкцией. Если оно верное, то может кому-то еще поможет, у кого тоже пока есть сложности с абстрактным мышлением. +22
Ksenia
12 ноября 2020, 14:01
полезная ссылочка на статью хабр про вариантность (Wladyslaw ниже писал про инвариантность и ковариантность)
+супер понятное видео про вариантность в ArrayList
+8
Anonymous #2297535
9 января 2021, 15:42
за видео отдельное спасибо. хороший контент
0
🦔 Виктор веду учебный тг-канал в t.me/Javangelion Expert
8 ноября 2020, 21:38
Не уловил смысловой нагрузки задачи, по-моему учат плохому.
Самое сложно — это понять, что хотят, меня вот с толку сбили списки строк в ТЗ, ну, почему не написать списочный массив из строк, а?
И, собственно, инициализация этого массива списочных массивов, тут объясняется как это сделать и почему НЕ стоит так делать.
1. Создаём пару списочных массивов с типом строки.
2. Закидываем в них для виду хотя бы по одной строке.
3. Создаём массив списочных массивов с типом строки: СписочныйМассив<Строка>[] названиеМассива = новый СписочныйМассив[размерМассива];
4. На этом пункте я просидел около часа, забыв, что это обычный массив и пытаясь в него запихнуть списочные массивы через метод добавить(), а не оператор =
5. Всё получится, но, задача такая себе...
+8