表现最好的是什么?
all.groupBy(_.id).mapValues(_.head)
或者
all.map(l => (l.id, l)).toMap
干杯
答案 0 :(得分:0)
一般来说,回答的唯一方法是对其进行基准测试,而在JVM上,基准测试的最佳方法是JMH。
但是,对于这种特定情况,它将强烈依赖于结果的使用模式等。 mapValues
实际上并不将函数应用于值,只有在访问结果Map
时才会执行。如果是,例如您将访问一次,而不是所有密钥,我希望mapValues
更快,而如果您重复访问相同的密钥,map
可能会更快。因此,您不应该只使用这些片段而不使用结果。