在单个线程中创建并使用scala Map时,最好的选择是什么? (就像在StringBuffer上使用java类似的最佳赌注,与StringBuilder相比,用于构造字符串)。
选择地图的约束类型是:
我调查了
测试表明,50000键没有明显的赢家。 我发现了一些
然而,问题是这种情况下最安全的赌注是什么?为什么?
答案 0 :(得分:8)
如果您的地图不是非常小而且不是很大,并且您的密钥是String
,则collection.mutable.AnyRefMap
是一个不错的选择。如果您有collection.mutable.LongMap
个密钥,Long
会更快。它们存在的原因恰恰是对于常见用例来说很快。
如果大多数地图非常小(0-4个元素),那么LinkedHashMap
往往是最好的,因为它避免了哈希表的开销。 (当4个或更少的元素时,不可变的地图也不错。)
如果地图非常庞大(数百万个键/值对),则标准collection.mutable.HashMap
是可行的方法,因为当空间用完单独的键时,性能会稍微优雅地降低。