Collection.unmodifiableMap迭代顺序

时间:2011-03-04 01:04:17

标签: java linkedhashmap

Colelction.unmodifiableMap是否保护迭代顺序?

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

我们如何保护迭代订单?

3 个答案:

答案 0 :(得分:5)

UnmodifiableMap只是委托所有方法,除了写一些方法。它的顺序正是代表的顺序。

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

答案 1 :(得分:4)

结帐Collections.unmodifiableSortedMap。这应该为您提供Map上的只读视图,并维护键的排序顺序。

答案 2 :(得分:1)

如果我们查看Collections.unmodifiableMap的源代码,我们会看到它只是将它传递给一个UnmodifiableMap类,它只是包装它。因此它不会对基础地图的顺序进行任何更改。

根据unmodifiableMap的文档,它说:

  

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

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