【发布时间】:2012-12-28 20:44:17
【问题描述】:
在阅读了LinkedHashMap 的文档(并多次使用它)之后,我仍然不清楚它的一个属性...是LinkedHashMap 的迭代顺序:
- 与
entrySet()、keySet()和values()的插入顺序相同,或者 - 与
entrySet()和keySet()的插入顺序相同,但与values()不同,或者 - 仅与
entrySet()的插入顺序相同?
我认为第三种情况不太可能,但我想知道是否有人知道 (1) 或 (2) 是否正确,因为迭代 values() 可能是一个罕见的用例。
【问题讨论】:
-
查看源代码后,我意识到三个迭代器都尊重插入顺序。
-
简单地尝试一个例子怎么样?
-
轶事证据的证明对我来说并没有真正站得住脚......我最终查阅了源代码。谢谢!
-
@MrSmith42:这种类型的问题尝试一个例子可能不会告诉你什么价值。您很容易得到误报——对于给定的示例,插入顺序碰巧保持不变,但对于更复杂或更长时间运行的示例则不会。
-
并不是说检查源要好得多。 :-)
标签: java hashmap linkedhashmap