Java Hashmap。应该使用多少个最大记录?

时间:2013-07-24 02:37:32

标签: java memory-management jvm hashmap

我有10,000个映射。将它们全部放在Java Hashmap中并访问是不是一个好主意?这将保存数据库事务,因为所有10,000条记录都将存在于内存中。每个映射都有大约100个字符,包括键和值,映射将非常明显。提出这个问题,因为在java或类似的情况下没有很好的经验。

4 个答案:

答案 0 :(得分:7)

就内存而言,10K对象是一桶水(请原谅双关语)。

尝试一下,看看,但我想你甚至可以找到最适度的内存容量来管理它。确保您有合理的堆大小:-Xmx512m或其他

答案 1 :(得分:1)

应该不是问题。需要注意的事项:

  1. 创建具有预期容量的HashMap实例,以避免在添加10K项目时调整地图大小。
  2. 确保您的密钥具有良好的hashcode和匹配的equals实施。如果您使用String这样的键作为键,那么这已经为您完成了。

答案 2 :(得分:0)

要映射的元素有多大?

这取决于您想要的元素的大小以及JVM上的可用大小,但在大多数情况下,拥有10,000个映射是可行的。

答案 3 :(得分:0)

HashMap.size()的返回类型是整数。

int HashMap.size()(返回此映射中键 - 值映射的数量。)

因此,您最多可以存储2,147,483,647个对象。

int - > int数据类型是32位带符号的二进制补码整数。它的最小值为-2,147,483,648,最大值为2,147,483,647(含)。

要将最大值存储到地图中,您需要增加堆大小(取决于您的需要)。