118 votes

Est-il possible de renommer une clé Hashmap ?

Je cherche un moyen de renommer une clé Hashmap, mais je ne sais pas si c'est possible en Java.

173voto

Alexis Pigeon Points 4047

Essayez de supprimer l'élément et de le remettre en place avec le nouveau nom. En supposant que les clés de votre carte sont String il pourrait être atteint de cette façon :

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

30voto

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

Cela fera ce que vous voulez, mais vous remarquerez que l'emplacement de la clé a changé.

21voto

Deepak M Points 1

Assignez la valeur de la clé, qui doit être renommée, à une nouvelle clé. Et supprimez l'ancienne clé.

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

13voto

light_ray Points 345

Vous ne pouvez pas renommer/modifier le hashmap key une fois ajouté.

Le seul moyen est de supprimer/supprimer le key et insérer avec un nouveau key y value paire.

Raison : Dans l'implémentation interne de hashmap, le Hashmap key le modificateur est marqué comme 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
}

Pour référence : HashMap

4voto

Hari Shankar Points 9405

On ne renomme pas une clé hashmap, il faut insérer une nouvelle entrée avec la nouvelle clé et supprimer l'ancienne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X