logo

Différence entre les classes HashSet et HashMap en Java

Le Carte de hachage et Jeu de hachage en Java sont les classes Collection les plus populaires. Les deux sont utilisés pour la structure des données. Le tableau suivant décrit la différence entre HashMap et HashSet :

Base Carte de hachage Jeu de hachage
Définition Java HashMap est une implémentation basée sur une table de hachage de l'interface Map. HashSet est un ensemble. Il crée une collection qui utilise une table de hachage pour le stockage.
Mise en œuvre HashMap implémente Mappé, clonable et sérialisable interface es. HashSet implémente Ensemble, clonable, sérialisable, itérable et Collection interfaces.
Magasins Dans HashMap, nous stockons un paire clé-valeur . Il maintient le mappage de la clé et de la valeur. Dans HashSet, nous stockons objets .
Valeurs en double Cela ne permet pas clés en double , mais valeurs en double sont autorisé . Cela ne permet pas valeurs en double .
Valeurs nulles Il peut contenir un clé nulle unique et plusieurs valeurs nulles . Il peut contenir une seule valeur nulle .
Méthode d'insertion HashMap utilise le mettre() méthode pour ajouter les éléments dans le HashMap. HashSet utilise le ajouter() méthode pour ajouter des éléments dans le HashSet.
Performance HashMap est plus rapide/ que HashSet car les valeurs sont associées à une clé unique. HashSet est Ralentissez que HashMap car l'objet membre est utilisé pour calculer la valeur du hashcode, qui peut être la même pour deux objets.
Le nombre d'objets Seulement un L'objet est créé lors de l'opération d'ajout. Il y a deux objets créés lors de l'opération put, un pour clé et un pour valeur .
Mécanisme de stockage HashMap utilise en interne hachage pour stocker des objets. HashSet utilise en interne un Carte de hachage objet pour stocker des objets.
Les usages Préférons toujours quand on ne maintient pas le unicité . Il est utilisé lorsque nous devons maintenir le unicité de données.
Exemple {a->4, b->9, c->5}une, b, c sont clés et 4, 9, 5 sont valeurs associé à la clé. {6, 43, 2, 90, 4} Il désigne un ensemble.

Comprenons les différences à travers les programmes.

Exemple de HashMap

Dans l'exemple suivant, lorsque nous ajoutons un élément en double avec la même clé et une valeur différente, la valeur précédente de la clé est remplacée par la nouvelle valeur.

Lorsque nous ajoutons un élément en double avec la même clé et la même valeur, la paire clé-valeur n'est pas stockée une deuxième fois.

 import java.util.*; public class HashMapExample { public static void main(String args[]) { //creating object of HashMap HashMap hm= new HashMap(); //adding key-value pair hm.put('John', 23); hm.put('Monty', 27 ); hm.put('Richard', 21); hm.put('Devid', 19); System.out.println('Before adding duplicate keys: '); System.out.println(hm); //adding duplicate keys hm.put('Monty', 25); //replace the Monty's previous age hm.put('Devid', 19); System.out.println('After adding duplicate keys: '); System.out.println(hm); } } 

Sortir:

Différence entre les classes HashSet et HashMap en Java

Exemple de HashSet

Dans l'exemple suivant, nous pouvons voir que les valeurs en double ne sont pas stockées dans le HashSet et que la valeur nulle n'est stockée qu'une seule fois.

 import java.util.*; public class HashSetExample { public static void main(String args[]) { //creating object of HashSet HashSet hs= new HashSet(); //adding values to HashSet hs.add('Java'); hs.add('Python'); hs.add('C++'); hs.add('C'); System.out.println('Before adding duplicate and null values: '); System.out.println(hs); //adding duplicate values hs.add('Python'); hs.add('C'); System.out.println('After adding duplicate values: '); System.out.println(hs); //adding null values hs.add(null); hs.add(null); System.out.println('After adding null values: '); System.out.println(hs); } } 

Sortir:

Différence entre les classes HashSet et HashMap en Java