Una mappa contiene valori sulla base della chiave, ovvero della coppia chiave-valore. Ogni coppia chiave-valore è nota come voce. Una mappa contiene chiavi univoche.
Una Mappa è utile se devi cercare, aggiornare o cancellare elementi in base ad una chiave.
Gerarchia della mappa Java
Esistono due interfacce per l'implementazione di Map in Java: Map e SortedMap e tre classi: HashMap, LinkedHashMap e TreeMap. La gerarchia di Java Map è riportata di seguito:
Una mappa non consente chiavi duplicate, ma puoi avere valori duplicati. HashMap e LinkedHashMap consentono chiavi e valori null, ma TreeMap non consente chiavi o valori null.
Una mappa non può essere attraversata, quindi è necessario convertirla in Set utilizzando mazzo di chiavi() O set di voci() metodo.
Classe | Descrizione |
---|---|
HashMap | HashMap è l'implementazione di Map, ma non mantiene alcun ordine. |
LinkedHashMap | LinkedHashMap è l'implementazione di Map. Eredita la classe HashMap. Mantiene l'ordine di inserimento. |
Mappa ad albero | TreeMap è l'implementazione di Map e SortedMap. Mantiene l'ordine crescente. |
Metodi utili dell'interfaccia della mappa
Metodo | Descrizione |
---|---|
V put(Chiave oggetto, Valore oggetto) | Serve per inserire una voce nella mappa. |
void putAll(Mappa mappa) | Viene utilizzato per inserire la mappa specificata nella mappa. |
V putIfAbsent(chiave K, valore V) | Inserisce il valore specificato con la chiave specificata nella mappa solo se non è già specificato. |
V rimuovi (chiave oggetto) | Viene utilizzato per eliminare una voce per la chiave specificata. |
rimozione booleana (chiave oggetto, valore oggetto) | Rimuove i valori specificati con le chiavi specificate associate dalla mappa. |
Imposta keySet() | Restituisce la vista Set contenente tutte le chiavi. |
Impostato | Restituisce la vista Set contenente tutte le chiavi e i valori. |
vuoto chiaro() | Viene utilizzato per ripristinare la mappa. |
Calcolo V (tasto K, funzione di rimappatura BiFunzione) | Viene utilizzato per calcolare una mappatura per la chiave specificata e il suo valore mappato corrente (o null se non esiste una mappatura corrente). |
V computeIfAbsent(tasto K, mappatura funzioniFunzione) | Viene utilizzato per calcolare il suo valore utilizzando la funzione di mappatura specificata, se la chiave specificata non è già associata a un valore (o è mappata su null) e la inserisce in questa mappa a meno che non sia null. |
V computeIfPresent(tasto K, funzione di rimappatura BiFunzione) | Viene utilizzato per calcolare una nuova mappatura data la chiave e il suo valore mappato corrente se il valore per la chiave specificata è presente e non nullo. |
booleano contieneValore(Valore oggetto) | Questo metodo restituisce true se esiste un valore uguale al valore all'interno della mappa, altrimenti restituisce false. |
booleano contieneKey(Chiave oggetto) | Questo metodo restituisce true se esiste una chiave uguale alla chiave all'interno della mappa, altrimenti restituisce false. |
booleano uguale(Oggetto o) | Viene utilizzato per confrontare l'Oggetto specificato con la Mappa. |
void forEach(azione BiConsumer) | Esegue l'azione specificata per ogni voce nella mappa finché tutte le voci non sono state elaborate o l'azione genera un'eccezione. |
V get(Chiave oggetto) | Questo metodo restituisce l'oggetto che contiene il valore associato alla chiave. |
V getOrDefault(Chiave oggetto, V defaultValue) | Restituisce il valore a cui è mappata la chiave specificata oppure defaultValue se la mappa non contiene alcuna mappatura per la chiave. |
int hashCode() | Restituisce il valore del codice hash per la mappa |
booleano è vuoto() | Questo metodo restituisce true se la mappa è vuota; restituisce false se contiene almeno una chiave. |
Unione V (chiave K, valore V, funzione di rimappatura BiFunzione) | Se la chiave specificata non è già associata a un valore o è associata a null, la associa al valore non null specificato. |
Sostituzione V (chiave K, valore V) | Sostituisce il valore specificato per una chiave specificata. |
sostituzione booleana (chiave K, V vecchioValore, V nuovoValore) | Sostituisce il vecchio valore con il nuovo valore per una chiave specificata. |
void replaceAll (funzione BiFunction) | Sostituisce il valore di ciascuna voce con il risultato dell'invocazione della funzione specificata su quella voce fino a quando tutte le voci non sono state elaborate o la funzione genera un'eccezione. |
Valori della raccolta() | Restituisce una vista di raccolta dei valori contenuti nella mappa. |
dimensione intera() | Questo metodo restituisce il numero di voci nella mappa. |
Interfaccia Map.Entry
Entry è la sottointerfaccia di Map. Quindi potremo accedervi tramite il nome Map.Entry. Restituisce una vista di raccolta della mappa, i cui elementi appartengono a questa classe. Fornisce metodi per ottenere chiave e valore.
Metodi dell'interfaccia Map.Entry
Metodo | Descrizione |
---|---|
K getKey() | Viene utilizzato per ottenere una chiave. |
V getValore() | Viene utilizzato per ottenere valore. |
int hashCode() | Viene utilizzato per ottenere hashCode. |
V setValue(valore V) | Viene utilizzato per sostituire il valore corrispondente a questa voce con il valore specificato. |
booleano uguale(Oggetto o) | Viene utilizzato per confrontare l'oggetto specificato con gli altri oggetti esistenti. |
statico | Restituisce un comparatore che confronta gli oggetti in ordine naturale in base alla chiave. |
Comparatore statico | Restituisce un comparatore che confronta gli oggetti per chiave utilizzando il comparatore specificato. |
statico | Restituisce un comparatore che confronta gli oggetti in ordine naturale in base al valore. |
Comparatore statico | Restituisce un comparatore che confronta gli oggetti in base al valore utilizzando il comparatore specificato. |
Esempio di mappa Java: non generica (vecchio stile)
//Non-generic import java.util.*; public class MapExample1 { public static void main(String[] args) { Map map=new HashMap(); //Adding elements to map map.put(1,'Amit'); map.put(5,'Rahul'); map.put(2,'Jai'); map.put(6,'Amit'); //Traversing Map Set set=map.entrySet();//Converting to Set so that we can traverse Iterator itr=set.iterator(); while(itr.hasNext()){ //Converting to Map.Entry so that we can get key and value separately Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' '+entry.getValue()); } } }
Produzione:
qual è il caso in sql
1 Amit 2 Jai 5 Rahul 6 Amit
Esempio di mappa Java: generica (nuovo stile)
import java.util.*; class MapExample2{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Elements can traverse in any order for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Produzione:
102 Rahul 100 Amit 101 Vijay
Esempio di mappa Java: confronto per chiave()
import java.util.*; class MapExample3{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey()) //Performs an action for each element of this stream .forEach(System.out::println); } }
Produzione:
100=Amit 101=Vijay 102=Rahul
Esempio di mappa Java: confronto con ByKey() in ordine decrescente
import java.util.*; class MapExample4{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByKey(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Produzione:
102=Rahul 101=Vijay 100=Amit
Esempio di mappa Java: confrontoPerValore()
import java.util.*; class MapExample5{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue()) //Performs an action for each element of this stream .forEach(System.out::println); } }
Produzione:
100=Amit 102=Rahul 101=Vijay
Esempio di mappa Java: compareByValue() in ordine decrescente
import java.util.*; class MapExample6{ public static void main(String args[]){ Map map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); //Returns a Set view of the mappings contained in this map map.entrySet() //Returns a sequential Stream with this collection as its source .stream() //Sorted according to the provided Comparator .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) //Performs an action for each element of this stream .forEach(System.out::println); } }
Produzione:
101=Vijay 102=Rahul 100=Amit