首页 文章

Condense scala Map

提问于
浏览
0

想象一下,我有

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

有了这个,我可以制作 Map Map [Int,Thing]

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

Map 中的原始键并不重要 . 我想以某种方式将此数据结构转换为

Map (100-> Seq("abc","abcd","abcde"),200-> Seq("xyz"))

2 回答

  • 1

    你可以通过groupBy来做到这一点

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

    又脏又脏

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

相关问题