從樹狀圖實例調用的entrySet()函數是否返回條目的TreeSet或只是一組條目?是否確保順序?TreeMap的entrySet()是否返回TreeSet
而不是將它作爲一組條目獲取如何獲取條目列表的順序?
從樹狀圖實例調用的entrySet()函數是否返回條目的TreeSet或只是一組條目?是否確保順序?TreeMap的entrySet()是否返回TreeSet
而不是將它作爲一組條目獲取如何獲取條目列表的順序?
這是相反的:TreeSet在內部使用TreeMap。 (見TreeSet docs的第一句)
沒有太多的Sun Java源代碼,我可以在網絡上找到鏈接,但這裏有一些老氣版本:
如您所見,TreeMap定義了一個名爲TreeMap.EntrySet的內部類,它只是擴展了AbstractSet。不,它不執行SortedSet(否則可能由SortedMap.entrySet()合同指定)。
但回答實際問題:是的,訂單是按照SortedMap.entrySet()合同中的規定來確保的。
更新:更新對Java 8 JavaDoc的鏈接,來源仍然是Java 6的
Assert.assertFalse(new TreeMap().keySet() instanceof SortedSet);
Assert.assertFalse(new TreeMap().keySet() instanceof TreeSet); //no need to assert
但設置有秩序實際上。
你是否確實是指'TreeSet',或者只是一個具有特定行爲的'Set'? – skaffman 2010-08-26 07:14:40
我只是表示它是否按排序順序排列。 – Emil 2010-08-26 07:47:32
@Emil它看起來像從集合返回的條目集合具有自然排序.... – Victor 2015-08-22 16:23:09