2010-10-26 94 views
-2

HashSet和TreeSet之間的區別?集合框架

+7

閱讀文檔,它就在那裏。 – skaffman 2010-10-26 10:01:10

+7

有時RTFM *是答案。 – 2010-10-26 10:02:22

回答

2

您應該檢查兩個類的JavaDoc。它們在各個方面都有所不同。

作爲一個例子,命令:

基於一個TreeMap甲NavigableSet實現。 這些元素使用它們的自然排序或在創建集時提供的比較器進行排序,具體取決於使用哪個構造函數

這個類實現Set 接口,由哈希表 (實際上是一個HashMap實例)支持。 對集合的 迭代次序不作任何保證;在 特別是,它不保證 訂單將保持恆定在 時間。該類允許使用空元素 。

1

看看Java教程步道上Set Implementations,從中我引述:

HashSetTreeSet快得多(恆定時間與 登錄時間大部分操作),但 不提供訂購保證。如果您 需要在 SortedSet接口使用的操作,或者如果需要 值排序迭代, 使用TreeSet;否則,請使用 HashSet。這是一個公平的賭注,你會 結束使用HashSet大部分 時間。