在Scala中,有没有办法将两个列表转换成地图?
发布时间:2020-12-16 09:38:17 所属栏目:安全 来源:网络整理
导读:我有两个列表,一个列表[A]和一个列表[B]。我想要的是一个地图[A,B],但我想要的zip的语义。所以开始像这样: var tuplesOfAB = listOfA zip listOfB 现在我不知道如何从我的tuplesOfAB构造一个地图。 作为一个后续问题,我也想反转我的地图,以便从地图[A
我有两个列表,一个列表[A]和一个列表[B]。我想要的是一个地图[A,B],但我想要的zip的语义。所以开始像这样:
var tuplesOfAB = listOfA zip listOfB 现在我不知道如何从我的tuplesOfAB构造一个地图。 作为一个后续问题,我也想反转我的地图,以便从地图[A,B]我可以创建一个地图[B,A]。任何人都可以用一根线棍打我吗? 解决方法
在2.8这是非常简单的使用CanBuildFrom功能(
as described by Daniel)和使用breakOut与编译器的类型指令,结果类型应该是:
import scala.collection.breakOut val m = (listA zip listB)(breakOut): Map[A,B] 以下也可以: val n: Map[A,B] = (listA zip listB)(breakOut) 而且(正如以下的EastSun所指出的那样),这已经被添加到图书馆中 val o = (listA zip listB).toMap 至于颠倒地图,你可以做: val r = m.map(_.swap)(breakOut): Map[B,A] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |