【问题标题】:Scala Functional style of converting Array[Int] to Map[Int, Int]将 Array[Int] 转换为 Map[Int, Int] 的 Scala 函数式风格
【发布时间】:2019-10-22 07:05:17
【问题描述】:

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

Array(11, 12, 13) => Map((11,0), (12,1), (13,2))

是否可以在不使用 Mutable 映射的情况下使用更实用的样式来做到这一点?

例如:

myArray.toMap(implicit def (... ))

【问题讨论】:

  • 这当然意味着,如果您的Array 有任何重复值,将会丢失数据:Array(2,3,2)
  • @jwvh 好地方!拐角和最坏的情况可能很重要!
  • 我会记住这一点。谢谢!

标签: scala functional-programming


【解决方案1】:
scala> Array(11, 12, 13).zipWithIndex.toMap
res0: scala.collection.immutable.Map[Int,Int] = Map(11 -> 0, 12 -> 1, 13 -> 2)

附:但是明智地使用来自 Scala 集合的HashMap/HashSet,以避免在 DoS/DoW 攻击下的不受信任输入上的安全漏洞,这些攻击直接或间接通过在后台使用它们的 Scala 集合方法利用其中的hash collision vulnerabilitiestoMap,@ 987654326@、distinctgroupBy等。

【讨论】:

    猜你喜欢
    • 2019-01-01
    • 2016-06-10
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多