#1。 从List到associate函数的Map
用Kotlin, List有一个叫做associate的函数。 associate有以下声明:
fun Iterable.associate(transform: (T) -> Pair): Map
返回包含由应用于给定collection的元素的transform函数提供的键值对的Map 。
用法:
class Person(val name: String, val id: Int) fun main(args: Array) { val friends = listOf(Person("Sue Helen", 1), Person("JR", 2), Person("Pamela", 3)) val map = friends.associate({ Pair(it.id, it.name) }) //val map = friends.associate({ it.id to it.name }) // also works println(map) // prints: {1=Sue Helen, 2=JR, 3=Pamela} }
#2。 从List Map到associateBy函数
用Kotlin, List有一个叫做associateBy的函数。 associateBy具有以下声明:
fun Iterable.associateBy(keySelector: (T) -> K, valueTransform: (T) -> V): Map
返回包含由valueTransform提供的值并由应用于给定collection的元素的keySelector函数索引的keySelector 。
用法:
class Person(val name: String, val id: Int) fun main(args: Array) { val friends = listOf(Person("Sue Helen", 1), Person("JR", 2), Person("Pamela", 3)) val map = friends.associateBy(keySelector = { person -> person.id }, valueTransform = { person -> person.name }) //val map = friends.associateBy({ it.id }, { it.name }) // also works println(map) // prints: {1=Sue Helen, 2=JR, 3=Pamela} }