0

可能重复:
Hashset vs Treeset

你可以使用HashSetTreeSet互换吗?如果我在一个程序中交换TreeSetHashset反之亦然,会有什么问题?我知道您需要ComparableTreeSet.

4

3 回答 3

3

如果某些 API 需要Set,那么您通过哪个实现绝对无关紧要。如果它需要具体类型(不太可能),则不能混合它们。

通常,它们的区别在于性能(HashSet更快),但这不应该影响您的程序的行为方式和顺序。项目的顺序HashSet是不可预测的。如果你的程序依赖于任何这样的顺序,它应该使用LinkedHashSetor TreeSet

于 2012-08-22T16:52:54.733 回答
2

HashSet并且TreeSet都是Sets。它们大多是可互换的,但请记住TreeSet也是 a SortedSet,因此它的元素必须实现Comparable

于 2012-08-22T17:03:28.807 回答
1

如果您想订购您的套装,您应该使用TreeSet. 如果您使用 aHashSet代替,您将获得依赖于排序的操作的不可预知的结果。

另一方面,aHashSet比 a 快得多,TreeSet如果命令不是您担心的事情。

于 2012-08-22T16:45:28.920 回答