Java Collection.unmodifiableMap迭代顺序

Java Collection.unmodifiableMap迭代顺序,java,linkedhashmap,Java,Linkedhashmap,Colelction.unmodifiableMap是否保护迭代顺序 我正在尝试newMap.put(key,Collections.ModifiableMap(oldMap)) 然后,当我执行newMap.get(key)和迭代时,迭代顺序似乎发生了变化 我们如何保护迭代顺序?不可修改映射只会委托所有方法,除了编写方法。它的顺序正是代表的顺序 如果您需要与第一个集合具有相同的顺序,请使用LinkedHashMap。签出。这将为您的地图提供一个只读视图,并保持键的排序顺序。如果我们查看源代码,我

Colelction.unmodifiableMap是否保护迭代顺序

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


我们如何保护迭代顺序?

不可修改映射只会委托所有方法,除了编写方法。它的顺序正是代表的顺序


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

签出。这将为您的地图提供一个只读视图,并保持键的排序顺序。

如果我们查看源代码,我们会发现它只是将其传递给一个不可修改的地图类,而该类只是将其包装。因此,它不会更改基础映射的顺序

根据它的文件,它说:

返回不可修改的视图 指定的映射


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

忘了提到,我确实在使用LinkedHashMap。我认为相同,但不可修改的地图在我尝试它时显示了它的真实面目:)作者在评论中只提到了这一点,但他使用的是LinkedHashMap,它的迭代顺序与SortedMap不同
Collections.unmodifiableSortedMap
返回类java.util.Collections中的
方法unmodifiableSortedMap不能应用于给定类型;[错误]必需:java.util.SortedMap[错误]找到:java.util.LinkedHashMap[错误]原因:无法推断类型变量K,V[错误](参数不匹配;java.util.LinkedHashMap无法转换为java.util.SortedMap)