【发布时间】:2019-05-05 14:19:43
【问题描述】:
LinkedHashSet - 此实现将其客户端从 HashSet 提供的未指定、通常混乱的排序中解救出来,而不会导致 与 TreeSet 相关的成本增加。
LinkedHashMap 与 TreeMap 也是如此
这个增加的成本到底是多少(LinkedHashMap vs TreeMap)?
这是否意味着 TreeSet 每个元素需要更多内存? LinkedHashSet 需要更多的内存用于两个额外的链接,但是 TreeSet 需要额外的内存来存储 Map.Entry 元素对(因为隐式基于 TreeMap),此外 LinkedHashSet 是基于 HashMap 的,它也有 Map.Entry 元素对开销...
所以区别在于添加新元素的速度(在 TreeSet 的情况下,由于某些“排序”而需要更长的时间)。
还有哪些其他显着增加的成本?
【问题讨论】:
-
一个 TreeSet 插入或查找是 O(log(n))。如果 O(1),则进行 LinkedHashSet 插入或查找。这是主要区别。
标签: java collections