scala - 有什么方法可以加快 Map.getOrElse(val, 0) 在大元组地图上的工作?
问题描述
Map
我在 Scala 中有简单的不可变:
// ... - mean and so on
val myLibrary = Map("qwe" -> 1.2, "qasd" -> -0.59, ...)
为此,myMap
我调用了调用MyFind
方法getOrElse(val, 0)
:
def MyFind (srcMap: Map[String,Int], str: String): Int ={
srcMap.getOrElse(str,0)
}
val res = MyFind(myLibrary, "qwe")
问题在于该方法为不同的输入字符串调用了多次。例如,我认为对于地图长度 100 和 1 个输入字符串,它将尝试比较该字符串 100 次(1 个地图值的比较)。正如您猜测的 10,000 次,它将获得 10,000 次比较。
由于映射长度超过 10.000,我的方法在该映射中查找字符串键的值会显着减慢工作速度。
您有什么建议可以加快该代码的速度?
也许使用另一种类型的地图?
也许另一个系列?