如果 HashMap 被构造并“填充”,那么它在下次读取时是否保留其元素的顺序?作为 LinkedHashMap?
假设我有一个返回 HashMap 对象的 Java 方法。
因为 LinkedHashMap 是 HashMap 的子类,所以我可以从此方法返回 LinkedHashMap 。
在下一个“读取”操作(不添加/删除/修改 K/V 对)中,迭代结果方法(返回 HashMap)的键将按照与原始 LinkedHashMap 相同的顺序进行,即使 HashMap缺少关键环节?
Suppose I have a Java method that returns a HashMap object.
Because a LinkedHashMap is a subclass of HashMap, I can return a LinkedHashMap from this method just fine.
On the next "read" action (no adding/removing/modifying of K/V pairs), would iterating over the keys of the resulting method (which returns a HashMap) go in the same order as the originating LinkedHashMap, even though the HashMap lacks the key links?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的。对象的实际实例仍然是返回的 LinkedHashMap,因此它将有其迭代顺序。
但是,我不会依赖于此。如果迭代顺序很重要,为什么还要使用 HashMap? 这可能是代码异味。
Yes. The actual instance of the object is still the returned
LinkedHashMap
, therefore it will have its iterating order.However, I wouldn't depend on this for anything. Why are you using
HashMap
s if iterating order is important? This might be a code smell.