沒有的ListIterator儘管文件明確規定的LinkedHashMap和LinkedHashSet中的LinkedHashMap和LinkedHashSet
都維持於所有條目的運行
我不明白爲什麼這些一個雙向鏈表實現不會返回ListIterator以使用next和previous進行導航。 有沒有人知道引擎蓋下的限制?
沒有的ListIterator儘管文件明確規定的LinkedHashMap和LinkedHashSet中的LinkedHashMap和LinkedHashSet
都維持於所有條目的運行
我不明白爲什麼這些一個雙向鏈表實現不會返回ListIterator以使用next和previous進行導航。 有沒有人知道引擎蓋下的限制?
的ListIterator一個打開通過將它們插入的可能性「的迭代器的當前位置」。但是這破壞了LinkedHashMap/Set本身所施加的順序,因爲它們的合約表明列表順序將嚴格等於插入順序。
您不能直接通過不是集合的鍵/值對的數據結構進行迭代。即使在內部存在一個記憶插入順序的雙向鏈表,你仍然需要以迭代器的標準方式。
上有返回鍵,值或條目(鍵+值)的集合,這些數據結構的方法:keySet()
,values()
,entrySet()
,你可以從中獲取迭代器。
也許你想要的是map.entrySet().iterator()
在這裏,雖然我同意這是一個集合,順序是不確定技術上...
聽起來很合理,令人困惑的是LinkedList確實會返回一個ListIterator。類似於我提到的結構,LinkedList是雙鏈接的,應該保持原始的廣告訂單。 – DED 2014-10-10 08:43:11
否。LinkedList允許在指定的位置插入。 – 2014-10-10 12:19:56
我看到了,因爲它實現了List接口,而LinkedHashMap/Set沒有。然後,當獲得反向迭代器時,雙鏈接很有用。 – DED 2014-10-10 15:19:53