有没有可能重新命名一个Hashmap的关键?

我正在寻找一种方法来重命名Hashmap键,但我不知道在Java中是否可能。

5 Solutions collect form web for “有没有可能重新命名一个Hashmap的关键?”

尝试删除元素,并用新的名称再次。 假设你的地图中的键是String ,可以这样实现:

 Object obj = map.remove("oldKey"); map.put("newKey", obj); 

将需要重命名的密钥的值分配给新密钥。 并删除旧的密钥。

 hashMap.put("New_Key", hashMap.get("Old_Key")); hashMap.remove("Old_Key"); 
 hashMap.put("New_Key", hashMap.remove("Old_Key")); 

这将做你想要的,但是,你会注意到,密钥的位置已经改变。

你不重命名一个hashmap键,你必须插入一个新的键入新的条目,并删除旧的。

一旦添加,您不能重命名/修改hashmap 密钥

唯一的方法是删除/删除密钥并插入新的密钥和值对。

原因 :在hashmap的内部实现中,Hashmap key修饰符被标记为final。

 static class Entry<K ,V> implements Map.Entry<K ,V> { final K key; V value; Entry<K ,V> next; final int hash; ...//More code goes here } 

对于参考: HashMap

  • HashMap中加载因子的意义是什么?
  • 如何从哈希中删除一个密钥,并在Ruby / Rails中获取剩余的哈希值?
  • C#Java HashMap等价物
  • 如何使用JavaScript / JQuery创build一个简单的地图
  • 如何在HashMap中保留插入顺序?
  • 如何在Java中使用foreach循环来遍历HashMap中的值?
  • Java HashMap.clear()和remove()的内存有效吗?
  • 如何将HashMap转换为Java中的List?
  • 有没有一个干净的方法,以避免调用一个嵌套的参数哈希零的方法?
  • 我想在C ++中看到一个hash_map的例子
  • 在C ++中使用HashMap的最好方法是什么?