我有一个 hashmap<String, String>
其中包含大约一千个条目。
现在我必须以无法在类外修改的方式公开它。所以我这样写
public static Map<String, String> getResponseCodeSource()
{
return Collections.unmodifiableMap(codeMsgMap);
}
这个方法调用非常频繁。我的问题是
1。这会导致性能问题吗?
2.方法 (unmodifiableMap) 是否在 Map 上迭代,或者这将以 O(constant) 复杂度执行其 Activity ?
最佳答案
这是一个非常精简的实现:
public static <K,V> Map<K,V> unmodifiableMap(Map<? extends K, ? extends V> m) {
return new UnmodifiableMap<>(m);
}
和构造函数代码:
UnmodifiableMap(Map<? extends K, ? extends V> m) {
if (m==null)
throw new NullPointerException();
this.m = m;
}
如您所见,复杂度为 O(1)。
关于java - Collections.unmodifiableMap 性能至关重要吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29162713/