gpt4 book ai didi

Scala:将 Map[K,V] 转换为 IntMap[V] 的最有效方法是什么?

转载 作者:行者123 更新时间:2023-12-05 00:38:50 25 4
gpt4 key购买 nike

假设我有一个带有 toInt 方法的类 Point,并且我有一个不可变的 Map[Point,V] ,对于某些类型 V 。Scala 中将其转换为 IntMap[V] 的最有效方法是什么?这里是我目前的实现:

def pointMap2IntMap[T](points: Map[Point,T]): IntMap[T] = {
var result: IntMap[T] = IntMap.empty[T]
for(t <- points) {
result += (t._1.toInt, t._2)
}
result
}

[编辑] 我的意思主要是 更快 ,但我也会对更短的版本感兴趣,即使它们显然不是更快。

最佳答案

IntMap为此有一个内置的工厂方法( apply ):

IntMap(points.map(p => (p._1.toInt, p._2)).toSeq: _*)

如果速度是一个问题,您可以使用:
points.foldLeft(IntMap.empty[T])((m, p) => m.updated(p._1.toInt, p._2))

关于Scala:将 Map[K,V] 转换为 IntMap[V] 的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5209577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com