java - map 中的 3 亿个项目

标签 java hash map hashmap

  1. 如果他们每个人都保证有一个唯一的 key (生成和 由外部键控系统强制执行),其中 Map 实现是 适合我吗?假设这必须针对 仅并发查找(数据在执行过程中初始化一次 应用程序启动)。
  2. 这 3 亿个唯一键是否有任何积极或消极的 对分桶/碰撞的影响?
  3. 还有其他建议吗?

我的 map 看起来像这样

Map<String, <boolean, boolean, boolean, boolean>>

最佳答案

我不会使用 map ,这需要很多内存。特别是在你的情况下。 将值存储在一个数据数组中,并将键存储在排序的索引数组中。 在排序的数组中,您使用 binSearch 查找数据 [] 中键的位置。

棘手的部分是在不耗尽内存的情况下构建数组。

你不需要考虑并发,因为你只从数据中读取

进一步尝试避免使用字符串作为键。尝试将它们转换为长。
此解决方案的优点:搜索时间保证不超过 log n。即使在最坏的情况下, key 会导致哈希码出现问题

关于java - map 中的 3 亿个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14538963/

相关文章:

JavaMail 获取电子邮件的 URL - Gmail

java - getSource() - 我在这里做错了什么?

delphi - 字符串记录的 TDictionary 哈希被破坏

arrays - 对作为哈希值的数组进行排序

java - Custom ClassLoader使用秘钥解密预加密类文件(已经用秘钥加密)

java - 方法中的变量不保存它们的值

java - 对哈希表中使用的字符串进行哈希处理(双重哈希)

java - 容量适配 Java 集合

google-maps - 当我打开检查元素时谷歌地图没有完全加载它会工作

c++ - 双映射结构实现?