浓缩标度图

Condense scala map

假设我有

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

有了这个我可以制作地图 Map[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"))

又快又脏

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

可以通过groupBy

myMap.groupBy(_._2.intValue).mapValues(_.values.map(_.stringValue))