加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Scala中指定HashMap的大小

发布时间:2020-12-16 08:58:49 所属栏目:安全 来源:网络整理
导读:我正在使用 Scala的可变HashMap逐步增加数百万个键值对.调整这些HashMaps的大小现在是我程序中最慢的部分.我如何告诉Scala从一开始就创建一个非常大的HashMap,以便它(几乎)永远不需要调整大小? 我也很感激提出另一个符合我需求的Scala / Java集合的想法.添
我正在使用 Scala的可变HashMap逐步增加数百万个键值对.调整这些HashMaps的大小现在是我程序中最慢的部分.我如何告诉Scala从一开始就创建一个非常大的HashMap,以便它(几乎)永远不需要调整大小?

我也很感激提出另一个符合我需求的Scala / Java集合的想法.添加新的键值对并检索给定键的值应该在大致恒定的时间内都可行.

解决方法

一种可能的方式:

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]

另一个:

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读