public class KeySetImmutable {
public static void main(String[] args) {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("Key1", "String1");
hashMap.put("Key2", "String2");
hashMap.put("Key3", "String3");
hashMap.put("Key4", "String4");
Set<String> keySet = hashMap.keySet();
keySet.add("Key4");
System.out.println(hashMap.keySet());
System.out.println(keySet);
}
}
在上面的代码中keySet.add("Key4")
抛出java.lang.UnsupportedOperationException
. 这是否意味着这个特定的 Set 实例是一个防止添加键的特殊实现?底层实现如何实现这一点?
而keySet.remove("Key3");
工作正常并从 中删除元素HashMap
。