我有一个Seq
包含如下所示的类的对象:
class A (val key: Int, ...)
现在我想转换这个Seq
to a Map
, 使用key
每个对象的值作为键,对象本身作为值。所以:
val seq: Seq[A] = ...
val map: Map[Int, A] = ... // How to convert seq to map?
如何在 Scala 2.8 中高效且优雅地完成此操作?
从 2.8 Scala 开始,.toMap
, so:
val map = seq.map(a => a.key -> a).toMap
或者如果您热衷于避免构造中间元组序列,那么在 Scala 2.8 到 2.12 中:
val map: Map[Int, A] = seq.map(a => a.key -> a)(collection.breakOut)
或者在 Scala 2.13 和 3 中(没有breakOut
,但确实有一个可靠的.view
):
val map = seq.view.map(a => a.key -> a).toMap
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)