可能重复:
Hashset vs Treeset
您可以互换使用HashSet
和TreeSet
吗?如果我在一个程序中交换了TreeSet
Hashset
,反之亦然,那会有什么问题?我知道您需要为Comparable
实施TreeSet
。
答案 0 :(得分:3)
如果某些API需要Set
,那么您传递的实现绝对无关紧要。如果它需要混凝土类型(不太可能),你不能混合它们。
一般来说,他们的不同之处在于性能(HashSet
更快),但这不应该影响程序的行为和顺序。 HashSet
中的项目顺序无法预测。如果您的计划依赖于任何此类订单,则应使用LinkedHashSet
或TreeSet
。
答案 1 :(得分:2)
HashSet
和TreeSet
都是Set
个。它们大多可以互换,但请记住TreeSet
也是SortedSet
,因此其元素必须实现Comparable
。
答案 2 :(得分:1)
如果您想要订购套装,则应使用TreeSet
。如果您改为使用HashSet
,那么对于依赖于排序的操作,您将获得不可预测的结果。
另一方面,如果订单不是你担心的话,HashSet
要比TreeSet
快得多。