Comment puis-je avoir un HashMap avec des clés uniques en Java? Ou même cela a-t-il un sens d'avoir des clés uniques dans HashMap ou les clés sont uniques par défaut? Je suis un débutant. THX
Les clés sont uniques sur toutes les cartes. La différence entre les différentes implémentations de cartes concerne la possibilité de clés nulles, l'ordre d'itération et les problèmes de concurrence.
La clé de carte de hachage est unique. Ajoutez une clé en double, puis elle sera remplacée.
HashMap hm = new HashMap();
hm.put("1", new Integer(1));
hm.put("2", new Integer(2));
hm.put("3", new Integer(3));
hm.put("4", new Integer(4));
hm.put("1", new Integer(5));// value integer 1 is overwritten by 5
Par défaut, Hashmap n'est pas synchronisé.
Essayez de regarder Java API for Map qui est l'interface que HashMap
implémente. La première phrase est:
Un objet qui mappe les clés aux valeurs. Une carte ne peut pas contenir de clés en double; chaque clé peut correspondre à au plus une valeur.
HashMap possède des clés uniques. as .keySet () renvoie Set qui a des membres uniques
HashMap est une collection pour stocker des paires (clé, valeur) et selon la documentation de HashMap les clés sont toujours uniques.
Si vous ajoutez une clé qui existe déjà (collision) dans la table de hachage, l'ancienne valeur sera remplacée.
Un hashmap générique est généralement implémenté comme un tableau associatif, alors supposons que votre tableau possède N éléments, de 0 à N-1, lorsque vous souhaitez ajouter une nouvelle paire (clé, valeur), ce qu'il fait en arrière-plan est (juste conceptuellement):
Ainsi, par construction, une clé est mappée à une et une seule entrée de tableau.
Veuillez noter que c'est en fait un peu plus complexe que cela: j'ignore délibérément des choses comme la gestion des collisions, le ressassement, etc., vous pouvez avoir une bonne idée générale ici https://en.wikipedia.org/wiki/ Hash_table