Colelction.unmodifiableMap 是否保护迭代顺序?
我正在尝试 newMap.put(key,Collections.ModifiableMap(oldMap)) 然后当我执行 newMap.get(key) 并进行迭代时,迭代顺序似乎发生了变化。
我们如何保护迭代顺序?
Colelction.unmodifiableMap 是否保护迭代顺序?
我正在尝试 newMap.put(key,Collections.ModifiableMap(oldMap)) 然后当我执行 newMap.get(key) 并进行迭代时,迭代顺序似乎发生了变化。
我们如何保护迭代顺序?
UnmodifiableMap 简单地委托所有方法,除了编写方法。它的顺序正是代表的顺序。
如果您需要与第一个集合具有相同的顺序,请使用 LinkedHashMap。
查看Collections.unmodifiableSortedMap。这应该为您提供 Map 上的只读视图并保持键的排序顺序。
如果我们查看Collections.unmodifiableMap的源代码,我们会发现它只是将它传递给 UnmodifiableMap 类,后者只是将它包装起来。所以它不会改变底层地图的顺序。
根据它的文档,unmodifiableMap
它说:
返回指定地图的不可修改视图。
因为它说它返回一个视图,这意味着我们没有得到不同的地图,只是访问旧地图的不同方式。