假设我有一个名为HashMap的myMap,然后从它得到一个keySet对象并修改keySet
Set<Integer> keys = myMap.keySet();
keys.remove(1);
keys.remove(2);如果myMap在这个片段之前包含了1和2作为键,那么在执行这个片段之后,myMap会被更改吗?
发布于 2017-04-22 06:12:44
是。从键集中删除元素将从映射中移除相应的条目。引用Javadoc
集合支持元素删除,它通过
Iterator.remove、Set.remove、removeAll、retainAll和clear操作从映射中删除对应的映射。
发布于 2017-04-22 06:12:35
jshell> HashMap<Integer, Integer> a = new HashMap<>();
a ==> {}
jshell> Set<Integer> b = a.keySet();
b ==> []
jshell> b
b ==> []
jshell> a.put(1,2)
$4 ==> null
jshell> a
a ==> {1=2}
jshell> b
b ==> [1]
jshell> b.remove(1)
$7 ==> true
jshell> a
a ==> {}
jshell> b
b ==> []答案是肯定的。
https://stackoverflow.com/questions/43555886
复制相似问题