Scala map包含作为元组的键。如何在不使用_._ 1的情况下基于元组中的元素进行分组,因为_1的使用不太可读。
示例:
val m = Map((1,true,"case0") -> List(1,2), (2,false,"case0") -> List(3,4),
(1,true,"case1") -> List(2,4))
如果我必须按键分组。 1,我们可以使用groupBy( ._ 1._1)进行分组。我们可以使用case语句执行相同的操作并避免使用_1吗?
答案 0 :(得分:5)
你可以做到
m.groupBy{case (key, _) => key._1}
并且更进了一步
m.groupBy{case ((key, _,_), _) => key}
答案 1 :(得分:1)
为密钥创建案例类
case class Key(id: Int, flag:Boolean, name:String)
val m = Map(Key(1,true,"case0") -> List(1,2),
Key(2,false,"case0") -> List(3,4),
Key(1,true,"case1") -> List(2,4))
m.groupBy(_._1.id)