logo

Carte de hachage Java

Hiérarchie des classes Java HashMap

Java Carte de hachage la classe implémente l'interface Map qui nous permet pour stocker la paire clé et valeur , où les clés doivent être uniques. Si vous essayez d'insérer la clé en double, elle remplacera l'élément de la clé correspondante. Il est facile d'effectuer des opérations en utilisant l'index clé comme la mise à jour, la suppression, etc. La classe HashMap se trouve dans lejava.utilemballer.

HashMap en Java ressemble à l'ancienne classe Hashtable, mais il n'est pas synchronisé. Cela nous permet également de stocker les éléments nuls, mais il ne devrait y avoir qu'une seule clé nulle. Depuis Java 5, il est notéCarte de hachage, où K représente la clé et V la valeur. Il hérite de la classe AbstractMap et implémente l'interface Map.

Points à retenir

  • Java HashMap contient des valeurs basées sur la clé.
  • Java HashMap ne contient que des clés uniques.
  • Java HashMap peut avoir une clé nulle et plusieurs valeurs nulles.
  • Java HashMap n'est pas synchronisé.
  • Java HashMap ne maintient aucun ordre.
  • La capacité initiale par défaut de la classe Java HashMap est de 16 avec un facteur de charge de 0,75.

Hiérarchie de la classe HashMap

Comme le montre la figure ci-dessus, la classe HashMap étend la classe AbstractMap et implémente l'interface Map.

Déclaration de classe HashMap

Voyons la déclaration de la classe java.util.HashMap.

chaîne en jsonobject
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

Paramètres de la classe HashMap

Voyons les paramètres de la classe java.util.HashMap.

    K: C'est le type de clés maintenues par cette carte.DANS: C'est le type de valeurs mappées.

Constructeurs de classe Java HashMap

ConstructeurDescription
Carte de hachage()Il est utilisé pour construire un HashMap par défaut.
HashMap(Carte m)Il est utilisé pour initialiser la carte de hachage en utilisant les éléments de l'objet Map m donné.
HashMap (capacité entière)Il est utilisé pour initialiser la capacité de la carte de hachage à la valeur entière donnée, capacité.
HashMap (capacité int, float loadFactor)Il est utilisé pour initialiser à la fois la capacité et le facteur de charge de la carte de hachage en utilisant ses arguments.

Méthodes de la classe Java HashMap

MéthodeDescription
vide clair()Il est utilisé pour supprimer tous les mappages de cette carte.
booléen isEmpty()Il est utilisé pour renvoyer true si cette carte ne contient aucun mappage clé-valeur.
Clone d'objet()Il est utilisé pour renvoyer une copie superficielle de cette instance HashMap : les clés et les valeurs elles-mêmes ne sont pas clonées.
Définir l'entréeSet()Il est utilisé pour renvoyer une vue de collection des mappages contenus dans cette carte.
Définir keySet()Il est utilisé pour renvoyer une vue définie des clés contenues dans cette carte.
V put (clé d'objet, valeur d'objet)Il est utilisé pour insérer une entrée dans la carte.
void putAll (Carte carte)Il est utilisé pour insérer la carte spécifiée dans la carte.
V putIfAbsent (clé K, valeur V)Il insère la valeur spécifiée avec la clé spécifiée dans la carte uniquement si elle n'est pas déjà spécifiée.
V supprimer (clé objet)Il est utilisé pour supprimer une entrée pour la clé spécifiée.
booléen supprimer (clé d'objet, valeur d'objet)Il supprime les valeurs spécifiées avec les clés spécifiées associées de la carte.
Calcul V (touche K, fonction de remappage BiFunction)Il est utilisé pour calculer un mappage pour la clé spécifiée et sa valeur mappée actuelle (ou null s'il n'y a pas de mappage actuel).
V computingIfAbsent (clé K, fonction mappingFunction)Il est utilisé pour calculer sa valeur à l'aide de la fonction de mappage donnée, si la clé spécifiée n'est pas déjà associée à une valeur (ou est mappée à null), et l'entre dans cette carte sauf si null.
V computingIfPresent (touche K, fonction de remapping BiFunction)Il est utilisé pour calculer un nouveau mappage en fonction de la clé et de sa valeur mappée actuelle si la valeur de la clé spécifiée est présente et non nulle.
booléen containValue (valeur de l'objet)Cette méthode renvoie vrai si une valeur égale à la valeur existe dans la carte, sinon renvoie faux.
booléen containKey (clé d'objet)Cette méthode renvoie vrai si une clé égale à la clé existe dans la carte, sinon renvoie faux.
booléen égal (Objet o)Il est utilisé pour comparer l'objet spécifié avec la carte.
void forEach (action BiConsumer)Il exécute l'action donnée pour chaque entrée de la carte jusqu'à ce que toutes les entrées aient été traitées ou que l'action lève une exception.
V obtenir (clé d'objet)Cette méthode renvoie l'objet qui contient la valeur associée à la clé.
V getOrDefault (clé objet, V valeur par défaut)Il renvoie la valeur à laquelle la clé spécifiée est mappée, ou defaultValue si la carte ne contient aucun mappage pour la clé.
booléen isEmpty()Cette méthode renvoie true si la carte est vide ; renvoie false s'il contient au moins une clé.
Fusion V (clé K, valeur V, fonction de remappage BiFunction)Si la clé spécifiée n'est pas déjà associée à une valeur ou est associée à null, l'associe à la valeur non nulle donnée.
V remplacer (clé K, valeur V)Il remplace la valeur spécifiée pour une clé spécifiée.
remplacement booléen (touche K, V oldValue, V newValue)Il remplace l'ancienne valeur par la nouvelle valeur pour une clé spécifiée.
void replaceAll (fonction BiFunction)Il remplace la valeur de chaque entrée par le résultat de l'appel de la fonction donnée sur cette entrée jusqu'à ce que toutes les entrées aient été traitées ou que la fonction lève une exception.
Valeurs de collection()Il renvoie une vue de collection des valeurs contenues dans la carte.
taille int()Cette méthode renvoie le nombre d'entrées dans la carte.

Exemple de carte de hachage Java

Voyons un exemple simple de HashMap pour stocker la paire clé et valeur.

 import java.util.*; public class HashMapExample1{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(4,'Grapes'); System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
Testez-le maintenant
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

Dans cet exemple, nous stockons Integer comme clé et String comme valeur, nous utilisons doncCarte de hachagecomme le type. Lemettre()La méthode insère les éléments dans la carte.

Pour obtenir les éléments clé et valeur, nous devons appeler les méthodes getKey() et getValue(). LeCarte.Entréel'interface contient le Obtenir la clé() et obtenirValeur() méthodes. Mais nous devrions appeler la méthode EntrySet() de l’interface Map pour obtenir l’instance de Map.Entry.

Pas de clé en double sur HashMap

Vous ne pouvez pas stocker de clés en double dans HashMap. Cependant, si vous essayez de stocker une clé en double avec une autre valeur, celle-ci remplacera la valeur.

 import java.util.*; public class HashMapExample2{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(1,'Grapes'); //trying duplicate key System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
Testez-le maintenant
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

Exemple Java HashMap pour ajouter des éléments ()

Ici, nous voyons différentes manières d'insérer des éléments.

 import java.util.*; class HashMap1{ public static void main(String args[]){ HashMap hm=new HashMap(); System.out.println('Initial list of elements: '+hm); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('After invoking put() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } hm.putIfAbsent(103, 'Gaurav'); System.out.println('After invoking putIfAbsent() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } HashMap map=new HashMap(); map.put(104,'Ravi'); map.putAll(hm); System.out.println('After invoking putAll() method '); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: {} After invoking put() method 100 Amit 101 Vijay 102 Rahul After invoking putIfAbsent() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav After invoking putAll() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav 104 Ravi 

Exemple Java HashMap pour supprimer les éléments ()

Ici, nous voyons différentes manières de supprimer des éléments.

 import java.util.*; public class HashMap2 { public static void main(String args[]) { HashMap map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); map.put(103, 'Gaurav'); System.out.println('Initial list of elements: '+map); //key-based removal map.remove(100); System.out.println('Updated list of elements: '+map); //value-based removal map.remove(101); System.out.println('Updated list of elements: '+map); //key-value pair based removal map.remove(102, 'Rahul'); System.out.println('Updated list of elements: '+map); } } 

Sortir:

 Initial list of elements: {100=Amit, 101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {102=Rahul, 103=Gaurav} Updated list of elements: {103=Gaurav} 

Exemple Java HashMap pour remplacer les éléments()

Ici, nous voyons différentes manières de remplacer des éléments.

 import java.util.*; class HashMap3{ public static void main(String args[]){ HashMap hm=new HashMap(); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('Initial list of elements:'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(102, 'Gaurav'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(101, 'Vijay', 'Ravi'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replaceAll((k,v) -> 'Ajay'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } } 
 Initial list of elements: 100 Amit 101 Vijay 102 Rahul Updated list of elements: 100 Amit 101 Vijay 102 Gaurav Updated list of elements: 100 Amit 101 Ravi 102 Gaurav Updated list of elements: 100 Ajay 101 Ajay 102 Ajay 

Différence entre HashSet et HashMap

HashSet ne contient que des valeurs alors que HashMap contient une entrée (clé et valeur).

Exemple Java HashMap : livre

 import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new HashMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } } 
Testez-le maintenant

Sortir:

 1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications and Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6 

Rubriques connexes

Comment parcourir une carte en Java

Comment trier HashMap en Java

Facteur de charge dans HashMap

Fonctionnement de HashMap en Java | Comment fonctionne HashMap

Différence entre HashMap et Hashtable

Comment trier HashMap par valeur

Différence entre HashSet et HashMap

Différence entre HashMap et TreeMap

Interface cartographique Java

qu'est-ce que la commande d'exportation sous Linux