我无法在文档中证实这一点,但如果我有一个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