2012-04-04 94 views

回答

1

就其本質而言,基於散列的數據結構不是有序的。你可以編寫一個包裝文件來補充一個額外的數據結構(這或多或少是LinkedHashMap所做的)。但是,保持哈希集合和列表是有意義的,爲了保持良好的順序,您需要一棵樹或類似的數據結構。但是樹本身可以作爲一個集合使用,所以你基本上會複製這些信息(比set + list更多的情況,這比兩個不同的set實現有所不同)。因此,如果您需要訂購,最好的解決方案是使用TreeSet或另一個SortedSet

1

這不是一個HashSet,但由於Set後裔你有TreeSet

此類實現Set接口,由TreeMap實例支持。此類保證排序後的集合將以元素升序排列

您可以使用迭代

公共迭代器迭代器()

返回在元素的迭代器遍歷元素在這一套。元素按升序返回

0

我想有TreeMap的是...相關,但絕對不一樣:)

1

您可以使用一個TreeSet,但它所有的操作都LG(N)

可以使用LinkedHashSet ,它保持哈希集頂部的鏈表,但它只保持插入順序(第一次插入將是迭代器中的第一個元素),你不能有自然或自定義排序

你也可以使用TreeSet + HashSet方法,對於每個元素將被保留,同時添加和刪除仍然是lg(n)包含將變爲預期o(n)

明智選擇:)