groupBy和mapValues或map和toMap

时间:2015-09-18 10:03:35

标签: scala

表现最好的是什么?

all.groupBy(_.id).mapValues(_.head)

或者

all.map(l => (l.id, l)).toMap

干杯

1 个答案:

答案 0 :(得分:0)

一般来说,回答的唯一方法是对其进行基准测试,而在JVM上,基准测试的最佳方法是JMH

但是,对于这种特定情况,它将强烈依赖于结果的使用模式等。 mapValues实际上并不将函数应用于值,只有在访问结果Map时才会执行。如果是,例如您将访问一次,而不是所有密钥,我希望mapValues更快,而如果您重复访问相同的密钥,map可能会更快。因此,您不应该只使用这些片段而不使用结果。