Scala:合并地图
发布时间:2020-12-16 09:22:48 所属栏目:安全 来源:网络整理
导读:如何合并地图,如下所示: Map1 = Map(1 - Class1(1),2 - Class1(2))Map2 = Map(2 - Class2(1),3 - Class2(2)) 合并后. Merged = Map( 1 - List(Class1(1)),2 - List(Class1(2),Class2(1)),3 - Class2(2)) 可以列出,设置或任何其他具有大小属性??的集合. 解决
如何合并地图,如下所示:
Map1 = Map(1 -> Class1(1),2 -> Class1(2)) Map2 = Map(2 -> Class2(1),3 -> Class2(2)) 合并后. Merged = Map( 1 -> List(Class1(1)),2 -> List(Class1(2),Class2(1)),3 -> Class2(2)) 可以列出,设置或任何其他具有大小属性??的集合. 解决方法
使用标准的lib,你可以这样做:
// convert maps to seq,to keep duplicate keys and concat val merged = Map(1 -> 2).toSeq ++ Map(1 -> 4).toSeq // merged: Seq[(Int,Int)] = ArrayBuffer((1,2),(1,4)) // group by key val grouped = merged.groupBy(_._1) // grouped: scala.collection.immutable.Map[Int,Seq[(Int,Int)]] = Map(1 -> ArrayBuffer((1,4))) // remove key from value set and convert to list val cleaned = grouped.mapValues(_.map(_._2).toList) // cleaned: scala.collection.immutable.Map[Int,List[Int]] = Map(1 -> List(2,4)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |