如果我有一个类型为 T
的集合 c
,并且在 T
上有一个属性 p
(比如类型为 P
),那么做一个 通过提取键进行映射 的最佳方法是什么?
val c: Collection[T]
val m: Map[P, T]
一种方法如下所述:
m = new HashMap[P, T]
c foreach { t => m add (t.getP, t) }
但现在我需要一个可变的映射。有没有更好的方法可以在一行内完成,并且最终得到一个不可变的映射?(显然,我可以将上述内容转化为简单的库实用程序,就像在Java中一样,但我怀疑在Scala中没有这个必要)
Map.fromList $ map (bar &&& id) c
,Map.fromList $ map (bar >>= (,)) c
。 - missingfaktor