我可以在Java中的HashMap对象中存储多少个元素

时间:2013-11-10 03:39:25

标签: java hashmap

我知道这取决于系统中可用的内存,也取决于一个好的哈希函数,但一般来说我想知道你使用的最大地图是什么,如果它运行良好盒子或需要任何调整才能使其充分发挥作用。

1 个答案:

答案 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中,有几千个条目,都非常轻量级