Differenza tra hashmap e map in Java

Mohammad Irfan 12 ottobre 2023
  1. L’interfaccia Map in Java
  2. La classe HashMap in Java
  3. Usa un riferimento Map per contenere oggetti in Java
  4. Usa un riferimento Map per contenere oggetti in Java
Differenza tra hashmap e map in Java

Questo tutorial introduce le principali differenze tra Map e HashMap in Java.

In Java, Map è un’interfaccia utilizzata per memorizzare i dati in coppie chiave-valore, mentre HashMap è la classe di implementazione dell’interfaccia Map. Java ha diverse classi (TreeHashMap, LinkedHashMap) che implementano l’interfaccia Map per memorizzare i dati nella coppia chiave-valore. Vediamo alcuni esempi.

L’interfaccia Map in Java

L’interfaccia Map da sola non può essere utilizzata per contenere dati, ma possiamo creare un oggetto delle sue classi di implementazione e quindi utilizzare il riferimento Map per contenere l’oggetto. Qui, usiamo la classe HashMap per memorizzare i dati e l’interfaccia Map per contenere il riferimento di questa classe. Vedi l’esempio sotto.

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

Produzione:

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

La classe HashMap in Java

HashMap è una classe di implementazione dell’interfaccia Map. Quindi, possiamo usarlo per creare una raccolta di coppie chiave-valore. Vedi l’esempio sotto.

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

Produzione:

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

Usa un riferimento Map per contenere oggetti in Java

Poiché Map è un’interfaccia, possiamo usarla per contenere il riferimento delle sue classi di implementazione come HashMap, TreeMap, ecc. Possiamo tenere un oggetto TreeMap o HashMap nell’interfaccia Map. Vedi l’esempio sotto.

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

Produzione:

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

Usa un riferimento Map per contenere oggetti in Java

È un esempio importante dell’utilizzo del riferimento Map mentre si lavora con le sue classi di implementazione. Vedi, abbiamo un metodo che accetta un oggetto Map come argomento. Quindi, al momento della chiamata, possiamo passare l’oggetto di qualsiasi classe come HashMap o HashTable. Vedi l’esempio sotto.

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

Esegui il codice come di seguito.

Java SimpleTesting 10 20

Produzione:

10
20

Articolo correlato - Java Map

Articolo correlato - Java HashMap