小编典典

Scala 将 Collection 转换为 Map-by-key 的最佳方式?

all

如果我有一个c类型的集合T并且有一个属性p(例如Ttype P),那么执行 map-by-extracting-key
的最佳方法是什么?

val c: Collection[T]
val m: Map[P, T]

一种方法如下:

m = new HashMap[P, T]
c foreach { t => m add (t.getP, t) }

但现在我需要一个 可变 地图。有没有更好的方法来做到这一点,让它在 1 行,我最终得到一个 不可变
的地图?(显然我可以将上面的内容变成一个简单的库实用程序,就像在 Java 中一样,但我怀疑在 Scala 中没有必要)


阅读 44

收藏
2022-08-21

共1个答案

小编典典

您可以使用

c map (t => t.getP -> t) toMap

但请注意,这需要 2 次遍历。

2022-08-21