浓缩标度图
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))
假设我有
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))