【发布时间】:2018-11-15 16:27:38
【问题描述】:
我有一个非常庞大的集合,所以即使是相对较小的内存差异也会产生影响。
或者差别很小?
当我们添加更多元素时,内存消耗的增长是否不同?
我相信 LinkedHashSet 每 N 个元素消耗的内存比 HashSet 多(用于存储链表链接),但我无法将 ArrayList 与 HashSet 进行比较。
【问题讨论】:
-
ArrayList 每个引用通常使用 4-8 个字节,HashSet 通常使用 ~32 个字节。除非您拥有数亿个值,否则它可能不会像您想象的那么大。
-
有相当多的集合库旨在比标准 java 集合实现更高效,您可能会发现它们很有用。一些例子是 fastutil、Trove 和 Eclipse Collections
标签: java collections