[英]Does a TreeMap's entrySet() return a TreeSet
從treemap實例調用的entrySet()函數是返回條目的TreeSet還是僅返回一組條目。是否確保了順序?
而不是將它作為一組條目得到它如何才能獲得一個條目列表?
反過來說:TreeSet在內部使用TreeMap。 (參見TreeSet文檔的第一句)
我可以在網上找到沒有太多的Sun java源代碼鏈接到,但這里有一些舊版本:
如您所見,TreeMap定義了一個名為TreeMap.EntrySet的內部類, 它只擴展了AbstractSet。 不,它沒有實現SortedSet (否則可能由SortedMap.entrySet()契約指定)。
但要回答實際問題:是的,訂單是按照SortedMap.entrySet()合同中的規定確保的。
更新:針對Java 8更新的JavaDoc鏈接,源代碼仍為Java 6
來自JavaDoc :
public Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射的Set視圖。 set的迭代器以升序鍵順序返回條目。
Assert.assertFalse(new TreeMap().keySet() instanceof SortedSet );
Assert.assertFalse(new TreeMap().keySet() instanceof TreeSet ); //no need to assert
但實際上這個集合有秩序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.