我知道这取决于系统中可用的内存,也取决于一个好的哈希函数,但一般来说我想知道你使用的最大地图是什么,如果它运行良好盒子或需要任何调整才能使其充分发挥作用。
答案 0 :(得分:11)
Java中的HashMap
最多可以有2 ^ 30个桶用于存储条目 - 这是因为java.util.HashMap
使用的桶分配技术要求桶的数量为2的幂由于ints是用Java签名的,因此最大正值为2 ^ 31 - 1,因此2的最大功率为2 ^ 30。
但是,实际上对于你可以在HashMap中存储多少个键/值对没有编程限制 - size()
函数在你通过2 ^ 31时就会停止准确 - 1.这是因为处理冲突的方式 - 落在同一个桶中的键/值对被链接,就像LinkedList
中的节点一样。
但是,一般情况下,如果您需要在实际应用程序中接近2 ^ 30项内容,则需要比在一台计算机上可以依赖的RAM多得多。我曾经使用过的最大的HashMap坐在一个JVM中,有几千个条目,都非常轻量级