Différence entre hashtable et hashmap en Java

Mohammad Irfan 12 octobre 2023
  1. Hashtable vs HashMap
  2. Créer Hashtable en Java
  3. Créer HashMap en Java
  4. Stocker null dans HashMap en Java
  5. Stocker null dans Hashtable en Java
Différence entre hashtable et hashmap en Java

Ce tutoriel présente les différences entre Hashtable et HashMap en Java liste également quelques exemples de codes pour comprendre le sujet.

Hashtable est une classe dans le framework de collections Java qui est utilisée pour stocker des données dans des paires clé-valeur. C’est une classe héritée en Java et fonctionne sur le concept de hachage pour stocker des éléments. Dans les dernières versions de Java, Hashtable n’est pas recommandé. Nous devrions plutôt utiliser HashMap qui est plus avancé que Hashtable. Consultez le tableau ci-dessous qui résume les principales différences entre Hashtable et HashMap en Java.

Hashtable vs HashMap

Hashtable HashMap
Synchronisé Non synchronisé
Null non autorisé Permettre null
Classe héritée Pas hérité
C’est lent C’est rapide

Dans le tableau de comparaison ci-dessus, nous pouvons clairement voir les principales différences entre Hashtable et HashMap. Voyons maintenant quelques exemples.

Comme Hashtable est synchronisé en interne, cela rend Hashtable légèrement plus lent que le HashMap.

Créer Hashtable en Java

Dans cet exemple, nous créons Hashtable. C’est le moyen le plus simple de créer Hashtable, et nous avons juste besoin d’importer Hashtable dans notre code. Cette classe se trouve dans le package java.util. Voir l’exemple ci-dessous.

import java.util.Hashtable;

public class SimpleTesting {
  public static void main(String[] args) {
    Hashtable<Integer, String> hashTable = new Hashtable<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    System.out.println(hashTable);
  }
}

Production:

{3=Three, 2=Two, 1=One}

Créer HashMap en Java

Dans cet exemple, nous créons HashMap en Java. C’est le moyen le plus simple de créer HashMap, et nous avons juste besoin d’importer HashMap dans notre code. Cette classe se trouve dans le package java.util. Voir l’exemple ci-dessous.

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<Integer, String> hashTable = new HashMap<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    System.out.println(hashTable);
  }
}

Production:

{3=Three, 2=Two, 1=One}

Stocker null dans HashMap en Java

Le HashMap permet de stocker null, ce qui signifie que nous pouvons stocker une clé nulle et plusieurs valeurs nulles dans le HashMap. Cette classe est utile lorsque vous avez null dans vos collections. Voir l’exemple ci-dessous.

import java.util.HashMap;

public class SimpleTesting {
  public static void main(String[] args) {
    HashMap<Integer, String> hashTable = new HashMap<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    hashTable.put(null, "Four");
    hashTable.put(null, null);
    System.out.println(hashTable);
  }
}

Production:

{null=null, 1=One, 2=Two, 3=Three}

Stocker null dans Hashtable en Java

La Hashtable ne permet pas le stockage de null, ce qui signifie que nous ne pouvons pas stocker de null dans la Hashtable. Cette classe n’est pas utile lorsque vous avez null dans vos collections. Voir l’exemple ci-dessous.

Il lève une exception NullPointerException si une valeur nulle est stockée.

import java.util.Hashtable;

public class SimpleTesting {
  public static void main(String[] args) {
    Hashtable<Integer, String> hashTable = new Hashtable<>();
    hashTable.put(1, "One");
    hashTable.put(2, "Two");
    hashTable.put(3, "Three");
    hashTable.put(null, "Four");
    hashTable.put(null, null);
    System.out.println(hashTable);
  }
}

Production:

Exception in thread "main" java.lang.NullPointerException

Article connexe - Java Hashtable

Article connexe - Java HashMap