关于Map<K,V>界面:
为什么keySet()返回一个Set支持remove运算却不支持add()andaddAll()运算的?
关于Map<K,V>界面:
为什么keySet()返回一个Set支持remove运算却不支持add()andaddAll()运算的?
Set返回的由支持keySet,Map因此对地图的更改会反映在集合中,反之亦然。这意味着调用remove它Set会Entry从Map.
在. _ add_ _addAllSetMap
想想你的要求:
您想要检索地图的所有 KEYS(并且该集合不是键的“副本”;它代表地图的键)。
然后您要求向这些 KEYS 添加元素。换句话说:您正在查看的“数据集”具有来自地图的键的语义含义。并且您想增加该“数据集” - 但不提供该地图的相应条目。
另一方面,删除是直截了当的;删除一个键也会从映射中删除相应的条目。
这是因为集合中的每个键都链接到映射中的一个值。删除键将删除关联的值,但要添加,您需要一个值而不仅仅是一个键。