簡體   English   中英

TreeMap的entrySet()是否返回TreeSet

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM