Решаю эту задачу уже несколько часов, не могу понять вообще
Дайте пожалуйста какую нибудь подсказку или объяснение
Илья
17 уровень
Я в ступоре
Обсуждается
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #598481
11 июня 2021, 14:30
Предложу варианта без ухищрений с другими коллекциями. Вариант Flexo хороший, я лишь опишу более прозрачный с точки зрения алгоритма.
Перебираешь слова из списка. Проверяешь для каждого слова, сколько раз оно встречается в мапе при помощи get. Если слова нет в списке, значит оно встретилось в первый раз, кладешь его в мапу с числом 1. Если не первый раз, то увеличиваешь полученное число на 1 и кладешь обратно в мапу.
0
Flexo Bending Unit #3370318
11 июня 2021, 14:47
можно пойти ещё дальше и использовать Map.merge из 1.8, и с foreach вообще в две строчки решение записать, чего уж))
0
hidden #598481
11 июня 2021, 14:58
это если твой вариант еще дальше развивать, а не мой)) я наоборот старался в сторону примитивности и понятности алгоритм изменять
0
ГоффMaster
11 июня 2021, 17:00
и поможет в этом getOrDefault. Но это не точно =)
0
Flexo Bending Unit #3370318
11 июня 2021, 14:15
Один из вариантов решения выглядит так:
- добавляете 20 слов в список
- создаёте из списка Set, в сете остаются только уникальные значения
- проходите в цикле по элементам Set, заполняя с помощью него Map, - в значение Map поступает возвращаемое значение метода Collections.frequency(list, setElement), то есть, та самая требуемая по условию частота встречаемости
0