Java - 不可修改的键集映射

标签 java dictionary key immutability

我正在寻找一种方法来提供具有预定义(如在运行时不可变,而不是编译时常量)常量键集但可修改值的 Map

JDK 提供了 Collections.unmodifiableMap 工厂方法,它包装了一个 Map 并提供了它的不可变 View 。

是否有类似的方法来包装 Map 以便只有它的键是不可变的?例如,put(K,V) 将替换现有键的值,但如果键不存在则抛出 UnsupportedOperationException

最佳答案

使用枚举作为键。然后人们不必关心他们是否可以添加新 key ,因为 key 域是固定且有限的。事实上,这就是 Java 提供的标准用例 java.util.EnumMap<K extends Enum<K>,V> http://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html

关于Java - 不可修改的键集映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43998089/

相关文章:

java - JodaTime 无法标准化 periodType

python - 如何使用 d.items() 更改 for 循环中的所有字典键?

javascript - 使用 shift 修饰符从键码中获取键字符(值)

java - Eclipse 工作区错误

java - google play services 无法实例化 Activity ComponentInfo java.lang.ClassNotFoundException

java - 我们可以在 servlet 中创建一个非参数化构造函数吗?

python - 从集合模块重新发明 Counter 类

python - 对 Python 字典中的值进行排序和重新编号

Java:nio WatchService - 无法检测第二个文件的创建。为什么?

oracle - “SET FOREIGN_KEY_CHECKS = 0;”相当于Oracle