有没有可能重新命名一个Hashmap的关键?
我正在寻找一种方法来重命名Hashmap键,但我不知道在Java中是否可能。
尝试删除元素,并用新的名称再次。 假设你的地图中的键是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