冷凝Scala地图



想象我有

case class Thing(intValue: Int, stringValue: String)

使用此我可以制作地图[int,thing]

val myMap = Map(1->Thing(100,"abc"), 2->Thing(100,"abcd"), 3->Thing(100,"abcde"), 4->Thing(200,"xyz"))

地图中的原始密钥并不重要。我想以某种方式将此数据结构转换为

map(100-> seq(" abc"," abcd"," abcde"),200-> seq(" xyz"))

您可以通过groupby

做到这一点
myMap.groupBy(_._2.intValue).mapValues(_.values.map(_.stringValue))

快速而肮脏

myMap.groupBy( _._2.intValue).map{ case (k,v) => (k, v.toList.map(_._2.stringValue))}

最新更新