Differenza tra hashmap e map in Java
-
L’interfaccia
Mapin Java -
La classe
HashMapin Java -
Usa un riferimento
Mapper contenere oggetti in Java -
Usa un riferimento
Mapper contenere oggetti 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
- Converti JSON in Map in Java
- Ordina una mappa per valore in Java
- Ottieni chiave da valore in Java Hashmap
- Ripeti su ogni elemento della mappa in Java