如果我有一个c
类型的集合T
并且有一个属性p
(例如T
type 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 中没有必要)