Une carte contient des valeurs sur la base d'une clé, c'est-à-dire une paire clé et valeur. Chaque paire clé/valeur est appelée une entrée. Une carte contient des clés uniques.
tableau de tri en Java
Une Map est utile si vous devez rechercher, mettre à jour ou supprimer des éléments sur la base d'une clé.
Hiérarchie des cartes Java
Il existe deux interfaces pour implémenter Map en Java : Map et SortedMap, et trois classes : HashMap, LinkedHashMap et TreeMap. La hiérarchie de Java Map est donnée ci-dessous :
Une carte n'autorise pas les clés en double, mais vous pouvez avoir des valeurs en double. HashMap et LinkedHashMap autorisent les clés et valeurs nulles, mais TreeMap n'autorise aucune clé ou valeur nulle.
Une carte ne peut pas être parcourue, vous devez donc la convertir en Set en utilisant jeu de clés() ou jeu d'entrées() méthode.
Classe | Description |
---|---|
Carte de hachage | HashMap est l'implémentation de Map, mais il ne maintient aucun ordre. |
LinkedHashMap | LinkedHashMap est l'implémentation de Map. Il hérite de la classe HashMap. Il maintient l’ordre d’insertion. |
ArbreCarte | TreeMap est l'implémentation de Map et SortedMap. Il maintient l'ordre croissant. |
Méthodes utiles de l'interface Map
Méthode | Description |
---|---|
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. |
Définir keySet() | Il renvoie la vue Set contenant toutes les clés. |
Ensemble | Il renvoie la vue Set contenant toutes les clés et valeurs. |
vide clair() | Il est utilisé pour réinitialiser 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é. |
int hashCode() | Il renvoie la valeur du code de hachage pour la carte |
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. |
Interface Map.Entry
Entry est la sous-interface de Map. Nous y accéderons donc par le nom Map.Entry. Il renvoie une vue collection de la carte, dont les éléments appartiennent à cette classe. Il fournit des méthodes pour obtenir la clé et la valeur.
Méthodes de l'interface Map.Entry
Méthode | Description |
---|---|
K getKey() | Il est utilisé pour obtenir une clé. |
V getValue() | Il est utilisé pour obtenir de la valeur. |
int hashCode() | Il est utilisé pour obtenir hashCode. |
V setValue (valeur V) | Il permet de remplacer la valeur correspondant à cette entrée par la valeur spécifiée. |
booléen égal (Objet o) | Il est utilisé pour comparer l'objet spécifié avec les autres objets existants. |
statique | Il renvoie un comparateur qui compare les objets dans l'ordre naturel sur la clé. |
Comparateur statique | Il renvoie un comparateur qui compare les objets par clé à l'aide du comparateur donné. |
statique | Il renvoie un comparateur qui compare les objets dans l'ordre naturel en termes de valeur. |
Comparateur statique | Il renvoie un comparateur qui compare les objets par valeur à l'aide du comparateur donné. |
Exemple de carte Java : non générique (ancien style)
//Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } }
Sortir:
comparer la chaîne java
1 Amit 2 Jai 5 Rahul 6 Amit
Exemple de carte Java : générique (nouveau style)
import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Sortir:
102 Rahul 100 Amit 101 Vijay
Exemple de carte Java : comparantByKey()
import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } }
Sortir:
formater la date en chaîne
100=Amit 101=Vijay 102=Rahul
Exemple de carte Java : comparantByKey() par ordre décroissant
import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Sortir:
102=Rahul 101=Vijay 100=Amit
Exemple de carte Java : comparantByValue()
import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } }
Sortir:
100=Amit 102=Rahul 101=Vijay
Exemple de carte Java : comparantByValue() par ordre décroissant
import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Sortir:
101=Vijay 102=Rahul 100=Amit