Выбор ответа Junior Коллекции и последовательности спрашивают часто обновлено

groupBy и associateBy

Вопрос

Чем groupBy { it.city } отличается от associateBy { it.city }?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: groupBy даёт ключ → список, associateBy ключ → последний элемент. groupBy собирает в список все элементы с одинаковым ключом. associateBy строит мапу «ключ → один элемент», и при совпадении ключей молча побеждает последний.

Варианты ответа

  1. Ничем, это синонимы для построения Map
  2. groupBy даёт ключ → список, associateBy ключ → последний элементправильный ответ
  3. associateBy бросает исключение при повторе ключа
  4. groupBy возвращает Set, а associateBy возвращает List

Разбор

groupBy собирает в список все элементы с одинаковым ключом. associateBy строит мапу «ключ → один элемент», и при совпадении ключей молча побеждает последний. Это частая причина потерянных данных. Исключение при дублях не бросается, а результат обеих функций это Map.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.