什么是最简洁的Scala方式来反转地图?
发布时间:2020-12-16 08:53:46 所属栏目:安全 来源:网络整理
导读:什么是最简洁的 Scala方式来反转地图?地图可能包含非唯一值. 编辑: Map [A??,B]的反转应该给Map [B,Set [A]](或MultiMap,甚至更好). 解决方法 如果您丢失重复的密钥: scala val map = Map(1-"one",2-"two",-2-"two")map: scala.collection.immutable.Map[
什么是最简洁的
Scala方式来反转地图?地图可能包含非唯一值.
编辑: Map [A??,B]的反转应该给Map [B,Set [A]](或MultiMap,甚至更好). 解决方法
如果您丢失重复的密钥:
scala> val map = Map(1->"one",2->"two",-2->"two") map: scala.collection.immutable.Map[Int,java.lang.String] = Map((1,one),(2,two),(-2,two)) scala> map.map(_ swap) res0: scala.collection.immutable.Map[java.lang.String,Int] = Map((one,1),(two,-2)) 如果您不希望以多地图形式进行访问,只需要设置地图,那么: scala> map.groupBy(_._2).mapValues(_.keys.toSet) res1: scala.collection.immutable.Map[ java.lang.String,scala.collection.immutable.Set[Int] ] = Map((one,Set(1)),Set(2,-2))) 如果你坚持要获得MultiMap,那么: scala> import scala.collection.mutable.{HashMap,Set,MultiMap} scala> ( (new HashMap[String,Set[Int]] with MultiMap[String,Int]) ++= | map.groupBy(_._2).mapValues(Set[Int]() ++= _.keys) ) res2: scala.collection.mutable.HashMap[String,scala.collection.mutable.Set[Int]] with scala.collection.mutable.MultiMap[String,Set(-2,2))) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如果定期$rootScope.$digest生效,AngularJS $http.post响应
- 使用if语句编写Shell脚本
- WebService体系之——CXF由来
- Angular 2,Webpack Uncaught ReferenceError:vendor …在添
- 3、Angular JS 学习笔记 – Controllers [翻译中]
- 【数据结构】哈希表
- angularjs – Angular 1.5 $onInit not firing – typescri
- angular – 在router.navigate之后没有调用ngOnInit
- bash脚本中的返回值
- scala – 使用JDBC创建PostgreSQL触发器