Différence entre hashmap et map en Java

Mohammad Irfan 12 octobre 2023
  1. L’interface Map en Java
  2. La classe HashMap en Java
  3. Utiliser une référence Map pour contenir des objets en Java
  4. Utiliser une référence Map pour contenir des objets en Java
Différence entre hashmap et map 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

Article connexe - Java HashMap