尝试研究 Kotlin 中的集合转换,我对associateWith转换扩展功能的文档感到有些困惑。
它说:
基本关联函数 associateWith() 创建了一个 Map,其中原始集合的元素是键,而值是由给定的转换函数从它们产生的。如果两个元素相等,则只有最后一个元素保留在 map 中。
然而,当我使用包含重复元素的列表(即它们相等)来测试这个函数时,最后一个被排除在 map 之外,只有第一个是剩下的,这与文档中所说的相反。
fun main() {
val numbers = listOf("one", "two", "three", "four", "five", "four")
val mapOfNumbers = numbers.associateWith { it.length }
println(mapOfNumbers) //the first "four" element is the one that remains in the map
}
在 Kotlin Playground 中运行它会打印以下内容
{一=3,二=3,三=5,四=4,五=4}
文档中的措辞是否存在,或者我的思路是否遗漏了一些东西?