我正在使用Scala的可变HashMap来逐步增加数百万个键值对.调整这些HashMaps的大小现在是我程序中最慢的部分.我如何告诉Scala从一开始就创建一个非常大的HashMap,以便它(几乎)永远不需要调整大小?
我也很感激提出另一个符合我需求的Scala/Java集合的想法.添加新的键值对并检索给定键的值应该在大致恒定的时间内都可行.
Yur*_*riy 10
一种可能的方式:
import scala.collection.mutable.{HashTable, DefaultEntry}
trait BigHashTable[A, B] extends HashTable[A, DefaultEntry[A, B]] {
override def initialSize: Int = 1024 // 16 - by default
}
val x = new HashMap[Int, String] with BigHashTable[Int, String]
Run Code Online (Sandbox Code Playgroud)
另一个:
class MyHashMap[A, B](initSize : Int) extends HashMap[A, B] {
override def initialSize: Int = initSize // 16 - by default
}
val x = new MyHashMap[Int, String](1024)
Run Code Online (Sandbox Code Playgroud)