谁消耗更多的内存,ArrayList或HashSet / LinkedHashSet?

时间:2018-11-15 16:27:38

标签: java collections

我的收藏非常庞大,因此即使相对较小的内存差异也可以有所作为。

还是区别很小?

当我们添加更多元素时,内存消耗增长是否有所不同?

我相信LinkedHashSet每N个元素比HashSet占用更多的内存(以存储链接列表链接),但是我无法将ArrayList与HashSet进行比较。

1 个答案:

答案 0 :(得分:1)

通常,HashMap每个条目使用32字节(12字节标题+ 16字节数据+ 4字节填充)。它还将使用4 *的容量字节,因此说完之后,HashMap对象将占据

32 * size + 4 * capacity bytes

另一方面,ArrayList通常为每个条目分配4-8字节。但是,如果分配更大容量的ArrayList并且仅容纳几个元素,则可能会更多。