web-dev-qa-db-fra.com

Comment puis-je avoir un HashMap avec des clés uniques en java?

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

38
Hossein

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.

34
xpapad

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é.

50
Kushan

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.

1
PrimosK

HashMap possède des clés uniques. as .keySet () renvoie Set qui a des membres uniques

1
Anish Mohile

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.

1
Rajesh Pantula

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):

  1. index = hachage (clé) mod N
  2. tableau [index] = valeur

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

1
Savino Sguera