我有 10,000 个映射。将它们全部放在 java Hashmap 中并进行访问是个好主意吗?这将保存数据库事务,因为所有 10,000 条记录都将存在于内存中。每个映射将有大约 100 个字符,包括键和值,并且映射将非常不同。问这个问题是因为在 Java 或类似情况下没有丰富的经验。
问问题
4965 次
4 回答
7
就内存而言,10K 个对象只是杯水车薪(请原谅双关语)。
试试看,但我想你会发现即使是现在最普通的内存容量也能应付。确保你有一个合理的堆大小:-Xmx512m
或其他
于 2013-07-24T02:40:48.860 回答
1
应该不是问题。需要注意的事项:
- 创建具有预期容量的 HashMap 实例,以避免在添加 10K 项目时调整地图大小。
- 确保您的密钥具有良好
hashcode
且匹配的equals
实现。如果您使用字符串之类的东西作为密钥,那么这已经为您完成了。
于 2013-07-24T02:43:37.080 回答
1
HashMap.size() 的返回类型是整数。
int HashMap.size() (返回此映射中键值映射的数量。)
因此,您最多可以存储 2,147,483,647 个对象。
int -> int 数据类型是一个 32 位有符号二进制补码整数。它的最小值为 -2,147,483,648,最大值为 2,147,483,647(含)。
要将最大值存储到地图中,您需要增加堆大小(取决于您的需要)。
于 2013-07-24T03:57:06.293 回答
0
你要映射的元素有多大?
这取决于您想要的元素大小和 JVM 上的可用大小,但在大多数情况下,拥有 10,000 个映射是可行的。
于 2013-07-24T02:42:01.030 回答