Выбор ответа Junior Коллекции и последовательности спрашивают часто обновлено
groupBy и associateBy
Вопрос
Чем groupBy { it.city } отличается от associateBy { it.city }?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: groupBy даёт ключ → список, associateBy ключ → последний элемент. groupBy собирает в список все элементы с одинаковым ключом. associateBy строит мапу «ключ → один элемент», и при совпадении ключей молча побеждает последний.
Варианты ответа
- Ничем, это синонимы для построения
Map groupByдаёт ключ → список,associateByключ → последний элементправильный ответassociateByбросает исключение при повторе ключаgroupByвозвращаетSet, аassociateByвозвращаетList
Разбор
groupBy собирает в список все элементы с одинаковым ключом. associateBy строит мапу «ключ → один элемент», и при совпадении ключей молча побеждает последний. Это частая причина потерянных данных. Исключение при дублях не бросается, а результат обеих функций это Map.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.