加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读