你好,我怎么能改变HashMap
中的一个键的值?
请看这个:
private static final Map<String, DefaultMutableTreeNode> M = new HashMap<>();
public static DefaultMutableTreeNode executeCommand(int command, String item1, String item2) {
switch (command) {
//...
case CommandsList.CREATE_CHILD:
String name = item1;
M.put(name, new DefaultMutableTreeNode(name));
//...
return M.get(root);
case CommandsList.CHANGE_NAME:
String newName = item2;
//
//what should I do here to replace name with newName???
//
return M.get(root);
//...
}
return null;
}
答案 0 :(得分:8)
您无法直接更改密钥的值,但您可以轻松地在新密钥下重新添加值,如下所示:
map.put(newkey, map.remove(oldkey));
答案 1 :(得分:1)
我假设&#34; item1&#34;传递给方法的变量是地图的关键,即旧名称。现在,您希望使用&#34; item2&#34;更新地图这是新名字。如果这是正确的,您可以删除旧名称,然后添加新名称:
map.remove(item1);
map.put(item2, new DefaultMutableTreeNode(item2));
如果是这种情况,或许是这样,您只想将位于item1的映射中的值替换为变量item2中的新名称,然后再次放置,新的item2值将覆盖什么是在关键项1的地图中:
map.put(item1, new DefaultMutableTreeNode(item2));
我希望其中之一就是你所追求的。如果有的话,请告诉我们哪一个有效,并标记为正确答案!
答案 2 :(得分:0)
M.put(item2, M.remove(item1));
M.get(item2).setUserObject(new DefaultMutableTreeNode(item2));