Массив списков строк

  • 6
  • Недоступна
Иногда задание — это просто задание. Без подвоха, и не стоит искать в нём сложности и глубины. Нужно просто сесть и решить. Перед нами — именно такое задание. Смотрите, как все внятно и просто: создайте массив, элементами которого будут списки строк. А потом заполните массив любыми данными и выведите их на экран.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (173)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Алексей
Уровень 16
24 августа, 18:40
Какой смысл в задаче давать условие на ограничение массива для ArrayList. Правильнее уже было бы это применять для обычного массива. Хоть какая-то логика была бы. Решил так:
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");

return new ArrayList[]{list};
Но не понравилось, что не указал размер массива. Принципиально скопипастил правильный ответ и пошел дальше. Чтобы на таких задачах себе мусором голову не забивать и не тратить время в пустую на такие условия.
Кирилл Backend Developer в Dats.team
2 июня, 07:39
Для себя понял что единственная цель этого задания - заставить зайти в комменты и найти там много полезной информации по теме и около неё. По факту делаешь какую-то химеру, которая на практике не используется и непонятно зачем её делать. Как верно заметил кто-то из комментаторов - "плохому учат". Я бы вообще это выпилил из курса.
SWK
Уровень 26
30 декабря 2021, 09:40
Тот случай, когда даже заглянув в ответ не понимаешь, почему нужно именно так. Видимо, это не объясняется примером и куцей теорией. Теории должно бы быть побольше. Ну, да, так работает. А почему не работает, например: ArrayList<String>[] result = new ArrayList<String>[3];
28 сентября 2021, 10:06
Инициализировал массив на 10 элементов, а прописал в методе добавление двух. И не мог понять, чего оно ругается?)))
Юлия Java Developer
6 апреля 2021, 14:22
"Иногда задание - просто задание. Без подвоха, и не стоит искать в нём сложности", - говорили они..
Dmitry Panchenko
Уровень 25
8 февраля 2021, 12:38
О как, каждый элемент массива листов, нужно инициализировать отдельно:
ArrayList<String>[] arrayLists = new ArrayList[sizeArray];
        for (int i = 0; i < sizeArray; i++)
            arrayLists[i] = new ArrayList<>();
Иван
Уровень 19
21 июля, 22:51
Спасибо большое!
Тоник ремонт мобильной техники в FixiT-сервис
2 февраля 2021, 07:33
Блин, бесит уже! Есть ведь такая штука, как быстрая инициализация! Почему ей нельзы пользоваться? Валидатор не пропускает решение, где используется вот такой вариант решения: Создаём аррэйлист <стринг> лист1 = новый аррэйлист<стрин>(данные...данные...данные) Создаём еще несколько таким же макаром И уже после этого добавляем готовые списки в новый массив. А так как списки уже готовы, то пытаемся использовать короткую запись: ArrayList<String>[] result = new ArrayList[]{list1, list2, list3, list4}; И что вы думаете? Идея прекрасно понимает, о чем идет речь; По всем правилам всё должно прекрасно работать, но нет! Валидатор говорит: "ПНХ ПДРС! ДЕЛАЙ ИНДУССКИЙ КОД!" И приходится писать вот эти вот result[0] = блаблабла - дополнительные несколько по факту ненужных строк.
Маргарита Backend Developer в Сбер
28 января 2021, 10:30
Создай массив, элементами которого будут списки строк. Мне одной показалось, что это должен быть ArrayList, элементами которого будут ArrayList<String>?
List<ArrayList<String>> listOfList = new ArrayList<>();
Почему тогда возвращаемое значение у createList() другое? Или я чего-то не понимаю?
Тоник ремонт мобильной техники в FixiT-сервис
2 февраля 2021, 07:35
Нет, должен быть массив [] элементами которого будут списки ArrayList<String>
Mikhail Nartov
Уровень 17
16 января 2021, 14:54
Ставь лайк, если проинициализировал массив, но забыл создать каждый список в нем :)
latkova
Уровень 15
12 февраля 2021, 19:46
я наоборот :)
Anonymous #2337929
Уровень 17
23 декабря 2020, 19:10
Вот эта запись
ArrayList<String>[] result = new ArrayList[3];
Это массив списков. То есть, элемент массива не строка или число, а всего лишь список (другой массив, но воспринимать его нужно просто как элемент сначала, без усложнения, поэтому лучше называть его сейчас именно "список", чтобы не путаться). Поэтому, чтобы что-то в этот список добавить, нужно сначала его создать. Как мы обычно создаем списки(для примера):
ArrayList<String> array = new ArrayList<>();
Только в данной задаче, поскольку мы действуем внутри обычного массива, мы просто заменяем первую часть
ArrayList<String> array
на
list[i]
где i - это индекс элемента нашего основного массива. А дальше, когда все списки созданы, мы уже спокойно добавляем в них элементы. Вот такое понимание,наконец, пришло спустя два дня размышлений над этой конструкцией. Если оно верное, то может кому-то еще поможет, у кого тоже пока есть сложности с абстрактным мышлением.