java - Collections.unmodifiableMap 性能至关重要吗?

标签 java collections hashmap

我有一个 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/

相关文章:

java - 在 Firebase 中自动增加一个值

java - 我需要用户提供一个时间,当这个时间到达时,将触发通知,我该怎么做?

c# - List<T> 上的 BinarySearch 似乎返回了奇怪的结果

java - 为什么 java.util.Set 没有 get(int index)?

java - 如何从迭代器中获取 int[]?

java - 读取部署在 Kubernetes 上的 Springboot 中的 secret

Java 类型推断与删除

java - HashMap 覆盖下一个值 Java

c++ - HASH 函数和实现多键 HashMap

java - HashMap 到树映射