将Array [Int]转换为Map [Int,Int]的Scala功能样式

irr*_*ser 1 functional-programming scala

我想将Array [Int]转换为Map [Int,Int],其中每个键是数组的元素,而各个值是数组中元素的索引。

Array(11, 12, 13) => Map((11,0), (12,1), (13,2))
Run Code Online (Sandbox Code Playgroud)

是否可以在不使用Mutable映射的情况下使用更具功能性的样式来执行此操作?

例如:

myArray.toMap(implicit def (... ))
Run Code Online (Sandbox Code Playgroud)

And*_*yuk 6

scala> Array(11, 12, 13).zipWithIndex.toMap
res0: scala.collection.immutable.Map[Int,Int] = Map(11 -> 0, 12 -> 1, 13 -> 2)
Run Code Online (Sandbox Code Playgroud)

PS,但使用HashMap/ HashSet从Scala集合明智地根据该漏洞的DoS / DOW攻击不受信任的输入避免安全漏洞哈希碰撞漏洞他们直接或间接地通过使用它们的发动机罩下的Scala集合方法:toMapkeysdistinctgroupBy,等。