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