Collection.unmodificableMap 迭代顺序

发布于 2024-10-20 02:59:58 字数 168 浏览 0 评论 0原文

Colelction.unmodifyingMap 是否能保证迭代顺序?

我正在尝试 newMap.put(key,Collections.ModifyingMap(oldMap)) 然后,当我执行 newMap.get(key) 并迭代时,迭代顺序似乎发生了变化。

我们如何保护迭代顺序?

Does Colelction.unmodifiableMap safeguard the iteration order?

I was trying newMap.put(key,Collections.ModifiableMap(oldMap))
Then when I do newMap.get(key) and iterate, iterate order seems to change.

How can we protect the iterate order?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

把回忆走一遍 2024-10-27 02:59:58

UnmodifierMap 只是委托所有方法,除了编写方法。它的命令正是代表的命令。

如果需要与第一个集合具有相同的顺序,请使用 LinkedHashMap。

UnmodifiableMap simply delegates all methods, except writing ones. It's order is exactly that of the delegate.

If you need to have the same order as the first collection, use LinkedHashMap.

查看 Collections.unmodifyingSortedMap。这应该为您提供地图上的只读视图并保持键的排序顺序。

Check out Collections.unmodifiableSortedMap. That should provide you with a read-only view on your Map and maintain the sorted order of the keys.

伪心 2024-10-27 02:59:58

如果我们查看 Collections.unmodifyingMap,我们看到它只是将其传递给 UnmodifyingMap 类,后者简单地包装了它。因此它不会改变底层地图的顺序。

并根据 unmodifyingMap 它说:

返回不可修改的视图
指定地图。

因为它说它返回一个视图,这意味着我们没有得到不同的地图,只是访问旧地图的不同方式。

If we look at the source for Collections.unmodifiableMap, we see that it just passes it to an UnmodifiableMap class, who simply wraps it. So it makes no changes to the underlying map's order.

And according to the documentation for unmodifiableMap it says it:

Returns an unmodifiable view of the
specified map.

Since it says it returns a view, it is implying that we're not getting a different map, just a different way to access the old map.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文