Collection.unmodifiableMap迭代顺序

Cha*_*dra 4 java linkedhashmap

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

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

我们如何保护迭代顺序?

小智 5

UnmodifiableMap只是委托所有方法,除了编写方法。它的顺序恰好是委托人的顺序。

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


Ken*_*and 4

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

  • 作者只在评论中提到了这一点,但他使用的是 LinkedHashMap,它的迭代顺序与 SortedMap 不同。`Collections.unmodifyingSortedMap` 返回 `java.util.Collections 类中的方法 unmodifyingSortedMap 不能应用于给定类型;[错误] 必需:java.util.SortedMap<K,? 扩展 V> [错误] 发现: java.util.LinkedHashMap<java.lang.String,java.lang.Class> [错误] 原因:无法推断类型变量 K,V [错误](参数不匹配;java .util.LinkedHashMap<java.lang.String,java.lang.Class> 无法转换为 java.util.SortedMap<K,? extends V>)` (2认同)