Différence entre hashmap et map en Java
-
L’interface
Mapen Java -
La classe
HashMapen Java -
Utiliser une référence
Mappour contenir des objets en Java -
Utiliser une référence
Mappour contenir des objets en Java
Ce tutoriel présente les principales différences entre Map et HashMap en Java.
En Java, Map est une interface permettant de stocker des données en paire clé-valeur, alors que HashMap est la classe d’implémentation de l’interface Map. Java dispose de plusieurs classes (TreeHashMap, LinkedHashMap) qui implémentent l’interface Map pour stocker les données dans une paire clé-valeur. Voyons quelques exemples.
L’interface Map en Java
L’interface Map seule ne peut pas être utilisée pour contenir des données, mais nous pouvons créer un objet de ses classes d’implémentation puis utiliser la référence Map pour contenir l’objet. Ici, nous utilisons la classe HashMap pour stocker les données et l’interface Map pour contenir la référence de cette classe. Voir l’exemple ci-dessous.
import java.util.HashMap;
import java.util.Map;
public class SimpleTesting {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
System.out.println(map);
}
}
Production:
{One=1, Two=2, Three=3}
La classe HashMap en Java
HashMap est une classe d’implémentation de l’interface Map. Nous pouvons donc l’utiliser pour créer une collection de paires clé-valeur. Voir l’exemple ci-dessous.
import java.util.HashMap;
public class SimpleTesting {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
System.out.println(map);
}
}
Production:
{One=1, Two=2, Three=3}
Utiliser une référence Map pour contenir des objets en Java
Puisque Map est une interface, nous pouvons l’utiliser pour contenir la référence de ses classes d’implémentation telles que HashMap, TreeMap, etc. Nous pouvons contenir un objet TreeMap ou HashMap dans l’interface Map. Voir l’exemple ci-dessous.
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class SimpleTesting {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
System.out.println(map);
Map<String, Integer> tmap = new TreeMap<>(map);
System.out.println(tmap);
}
}
Production:
{One=1, Two=2, Three=3}
{One=1, Three=3, Two=2}
Utiliser une référence Map pour contenir des objets en Java
C’est un exemple important d’utilisation de la référence Map tout en travaillant avec ses classes d’implémentation. Vous voyez, nous avons une méthode qui prend un objet Map comme argument. Ainsi, au moment de l’appel, nous pouvons passer l’objet de toutes les classes telles que HashMap ou HashTable. Voir l’exemple ci-dessous.
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
public class SimpleTesting {
static void printMap(Map<String, Integer> map) {
for (String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
}
}
public static void main(String[] args) {
HashMap<String, Integer> hashmap = new HashMap<>();
hashmap.put("One", 1);
hashmap.put("Two", 2);
hashmap.put("Three", 3);
printMap(hashmap);
TreeMap<String, Integer> tmap = new TreeMap<>(hashmap);
printMap(tmap);
LinkedHashMap<String, Integer> lmap = new LinkedHashMap<>(hashmap);
printMap(lmap);
}
}
Exécutez le code comme ci-dessous.
Java SimpleTesting 10 20
Production:
10
20
Article connexe - Java Map
- Convertir les valeurs de map en une liste en Java
- Filtrage de map en Java
- Convertir une liste en map en Java
- Créer une carte ordonnée en Java
- Créer une Map en Java