2013-05-12 35 views

回答

4

LinkedHashSet將保持訂單。 TreeSet將根據外部Comparator或通過Comparable自然排序進行排序。

Set的一般要點是該順序無關緊要。散列旨在將元素儘可能隨機排列。 LinkedHashSet維護對元素的引用之間的鏈接列表,因此可以維護訂單。

BitSet(它不是Set)可能會或可能不會提供更有效的數據結構。

+0

但我正在執行的方法爲我的程序返回一個集合(實際上它是一個uni項目)。在這個項目中我需要對元素進行排序。 – 2013-05-12 00:55:09

0

的HashSet的不排序或維持秩序,而API會告訴你:

它不保證該順序恆久不變。

考慮使用另一種類型的Set,如TreeSet。

+0

@NavidKoochooloo:你以爲是錯的。請再次閱讀我上面發佈的HashSet API的報價。 – 2013-05-12 00:50:09

0

如果您只關心唯一性,請使用HashSet。如果您在排序後,請考慮TreeSet。

0

您需要使用TreeSet併爲您的數據實現Comparator對象或Comparable接口。您可以閱讀關於對象訂購here 散列集旨在快速訪問唯一的數據,而不是維護特定的訂單。

相關問題