想象我有
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))}