我無法在文檔中證實這一點,但如果我有一個LinkedHashMap,並且我調用keySet()並遍歷這個集合,它會保證以迭代順序迭代嗎?LinkedHashMap遍歷鍵遍歷
0
A
回答
2
是的。 請參閱該文檔(你看不到),在這裏:http://docs.oracle.com/javase/6/docs/api/java/util/LinkedHashMap.html
哈希表和Map接口的鏈接列表實現,具有 預知的迭代順序。該實施方式與HashMap 的不同之處在於其保持通過其所有 條目運行的雙向鏈表。此鏈接列表定義了迭代排序,通常是鍵被插入到地圖 (插入順序)中的順序。請注意,如果將鍵 重新插入到地圖中,則插入順序不會受到影響。 (如果 m.put(K,V)是當m.containsKey(K)將真 之前立即調用返回調用的密鑰k被重新插入到地圖米)
3
它在指定的Map
文檔:
的
Map
接口提供了三個集合視圖,其允許地圖的內容應被視爲一組鍵,集合的值,或設定鍵 - 值映射的。地圖的順序被定義爲地圖集合視圖上的迭代器返回它們的元素的順序。一些地圖實現,例如TreeMap
類,對它們的順序做出了特定的保證;其他人,如HashMap類,不。
這意味着對於LinkedHashMap
,所有的3種方法 - values()
,keySet()
和entrySet()
,他們每個人提供3個不同的集合視圖的,保證在插入順序進行迭代。
相關問題
- 1. Freemarker的:遍歷LinkedHashMap中
- 2. 遍歷樹遍歷
- 3. 遍歷
- 4. 遍歷
- 5. DOM遍歷的AJAX調用遍歷
- 6. Json遍歷問題,無法遍歷值
- 7. 在C中自動遍歷樹遍歷#
- 8. Rust與遍歷Checker的樹遍歷
- 9. 遍歷Request對象鍵
- 10. Django模板外鍵遍歷
- 11. 遍歷JSON鍵獲取值
- 12. NSHTTPCookie:遍歷所有鍵
- 13. clojurescript遍歷對象的鍵
- 14. 遍歷XML
- 15. 遍歷陣列
- 16. 遍歷dataframes
- 17. lisp樹遍歷
- 18. 遍歷Java的
- 19. 遍歷的JavaScript
- 20. 遍歷範圍
- 21. 與遍歷
- 22. 遍歷鏈表
- 23. 後序遍歷
- 24. 遍歷Freebase圖
- 25. 遍歷列表
- 26. 遍歷日期
- 27. 遍歷在Signalr
- 28. 遍歷鏈表
- 29. 遍歷在Go
- 30. 遍歷對象
是的,它有保證 – Ilya