Scala:按键合并地图
发布时间:2020-12-16 09:38:28 所属栏目:安全 来源:网络整理
导读:说我有两张地图: val a = Map(1 - "one",2 - "two",3 - "three")val b = Map(1 - "un",2 - "deux",3 - "trois") 我想通过键合并这些地图,应用一些函数来收集值(在这种特殊情况下,我想将它们收集到一个seq中,给出: val c = Map(1 - Seq("one","un"),2-Se
说我有两张地图:
val a = Map(1 -> "one",2 -> "two",3 -> "three") val b = Map(1 -> "un",2 -> "deux",3 -> "trois") 我想通过键合并这些地图,应用一些函数来收集值(在这种特殊情况下,我想将它们收集到一个seq中,给出: val c = Map(1 -> Seq("one","un"),2->Seq("two","deux"),3->Seq("three","trois")) 觉得应该有一个很好的惯用的方式来做这个 – 有什么建议吗?如果解决方案涉及到scalaz,我很高兴 解决方法scala.collection.immutable.IntMap 有一个交叉方式,正是你想要的(我相信):
import scala.collection.immutable.IntMap val a = IntMap(1 -> "one",3 -> "three",4 -> "four") val b = IntMap(1 -> "un",3 -> "trois") val merged = a.intersectionWith(b,(_,av,bv: String) => Seq(av,bv)) 这给了你IntMap(1 – > List(one,un),2 – > List(two,deux),3 – > List(three,trois))。请注意,它正确地忽略只发生在a中的键。 作为附注:我经常发现自己想要在Scala的Haskell’s (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Android GitHub 快速实现多人协作
- Docker容器中的Docker统计信息在kubernetes中返回空值
- 从gvim菜单中解释gP命令
- node.js – 当NODE_ENV = production时,Gulp构建到Docker容
- angularjs – 有没有办法在单个控制器中使用$uibModal和$ui
- webservice接口的开发和调用
- 是否有一种方法来指示批处理文件中的最后n个参数?
- 格式化来自shell的GitHub提交消息
- 如何使用angular-cli和webpack在angular2应用程序中导入xml
- scala – 如何运行使用Simple Build Tool创建的包?