map
внутренне создает новый список и помещает его результаты в этот список, а затем возвращает этот список:
val mapResult = listOf(1, 2, 3).map { it * 2 } // you get a new list instance returned
Если вместо этого вы используете mapTo
, вы можете указать место назначения, в которое он помещает сопоставленные элементы, указав собственный список в качестве первого параметра:
val myList = ArrayList<Int>()
val mapToResult = listOf(1, 2, 3).mapTo(myList) { it * 2 }
Если в предоставленном вами списке уже есть элементы, они будут сохранены, а новые будут добавлены к ним. Для удобства он также возвращает список адресатов.