【发布时间】:2010-11-28 08:30:35
【问题描述】:
在Java中,如果我创建一个Hashtable<K, V>并在其中放入N个元素,它会占用多少内存?如果它依赖于实现,那么什么是好的“猜测”?
【问题讨论】:
-
它可能会被你的键和值对象的大小所支配(除了小地图)。
-
我已经添加了一个精确的计算,尽管它可能会因虚拟机而异。这并不总是正确的。对于非常小的键和值(例如,对于原语的包装器对象),Entry 对象的大小可能会支配 hashmap/hashtable 的大小(在内部它们是相同的)。如果多个值是对同一对象实例的引用,也会发生这种情况。如果您使用大量原始对象作为键或值,请查看 Trove 库。为此,它更快,内存效率更高。
标签: java hashtable memory-management