associateWith() создает карту, где ключами являются элементы исходной коллекции, а значениями — результат применения преобразования к КАЖДОМУ элементу.
associateBy() создает карту, где ключами являются результат применения преобразования к КАЖДОМУ элементу исходной коллекции, а значениями — сами элементы (или результат другого преобразования элемента).
При конфликте ключей в обеих функциях берется последний элемент, соответствующий ключу.