Differenza tra hashtable e hashmap in Java

Mohammad Irfan 12 ottobre 2023
  1. Hashtable vs HashMap
  2. Crea Hashtable in Java
  3. Crea HashMap in Java
  4. Memorizza null in HashMap in Java
  5. Memorizza null in Hashtable in Java
Differenza tra hashtable e hashmap in Java

Questo tutorial introduce le differenze tra Hashtable e HashMap in Java elenca anche alcuni codici di esempio per comprendere l’argomento.

Hashtable è una classe nel framework delle raccolte Java utilizzata per memorizzare i dati in coppie chiave-valore. È una classe legacy in Java e lavora sul concetto di hash per memorizzare gli elementi. Nelle ultime versioni di Java, Hashtable non è consigliato. Dovremmo piuttosto usare HashMap che è più avanzato di Hashtable. Vedi la tabella seguente che riassume le differenze chiave tra Hashtable e HashMap in Java.

Hashtable vs HashMap

Hashtable HashMap
Sincronizzato Non sincronizzato
Null non consentito Consenti null
Classe legacy Non eredità
È lento È veloce

Nella tabella di confronto sopra, possiamo vedere chiaramente le principali differenze tra Hashtable e HashMap. Vediamo ora alcuni esempi.

Poiché Hashtable è sincronizzato internamente, questo rende Hashtable leggermente più lento di HashMap.

Crea Hashtable in Java

In questo esempio, stiamo creando Hashtable. È il modo più semplice per creare Hashtable e dobbiamo solo importare Hashtable nel nostro codice. Questa classe si trova nel pacchetto java.util. Vedi l’esempio sotto.

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);
  }
}

Produzione:

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

Crea HashMap in Java

In questo esempio, stiamo creando HashMap in Java. È il modo più semplice per creare HashMap e dobbiamo solo importare HashMap nel nostro codice. Questa classe si trova nel pacchetto java.util. Vedi l’esempio sotto.

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);
  }
}

Produzione:

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

Memorizza null in HashMap in Java

La HashMap consente di memorizzare null, il che significa che possiamo memorizzare una chiave null e più valori null in HashMap. Questa classe è utile quando hai null nelle tue raccolte. Vedi l’esempio sotto.

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);
  }
}

Produzione:

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

Memorizza null in Hashtable in Java

La Hashtable non consente la memorizzazione di null, il che significa che non possiamo memorizzare un null in Hashtable. Questa classe non è utile quando hai null nelle tue raccolte. Vedi l’esempio sotto.

Genera un’eccezione NullPointerException se viene memorizzato un valore nullo.

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);
  }
}

Produzione:

Exception in thread "main" java.lang.NullPointerException

Articolo correlato - Java HashMap