Giava HashMap class implementa l'interfaccia Map che ci consente per memorizzare la coppia chiave-valore , dove le chiavi dovrebbero essere univoche. Se provi a inserire la chiave duplicata, sostituirà l'elemento della chiave corrispondente. È facile eseguire operazioni utilizzando l'indice chiave come aggiornamento, cancellazione, ecc. La classe HashMap si trova injava.utilpacchetto.
HashMap in Java è come la classe Hashtable legacy, ma non è sincronizzata. Ci consente di memorizzare anche gli elementi null, ma dovrebbe esserci solo una chiave null. A partire da Java 5, è indicato comeHashMap, dove K sta per chiave e V per valore. Eredita la classe AbstractMap e implementa l'interfaccia Map.
Punti da ricordare
- Java HashMap contiene valori basati sulla chiave.
- Java HashMap contiene solo chiavi univoche.
- Java HashMap può avere una chiave nulla e più valori nulli.
- Java HashMap non è sincronizzato.
- Java HashMap non mantiene alcun ordine.
- La capacità predefinita iniziale della classe Java HashMap è 16 con un fattore di carico di 0,75.
Gerarchia della classe HashMap
Come mostrato nella figura sopra, la classe HashMap estende la classe AbstractMap e implementa l'interfaccia Map.
Dichiarazione della classe HashMap
Vediamo la dichiarazione per la classe java.util.HashMap.
disabilita la modalità sviluppatore
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable
Parametri della classe HashMap
Vediamo i parametri per la classe java.util.HashMap.
Costruttori della classe Java HashMap
Costruttore | Descrizione |
---|---|
Mappa hash() | Viene utilizzato per costruire una HashMap predefinita. |
HashMap(Mappa m) | Viene utilizzato per inizializzare la mappa hash utilizzando gli elementi dell'oggetto Map specificato m. |
HashMap(capacità int) | Viene utilizzato per inizializzare la capacità della mappa hash sul valore intero specificato, capacità. |
HashMap(capacità int, fattore di carico float) | Viene utilizzato per inizializzare sia la capacità che il fattore di carico della mappa hash utilizzando i suoi argomenti. |
Metodi della classe Java HashMap
Metodo | Descrizione |
---|---|
vuoto chiaro() | Viene utilizzato per rimuovere tutte le mappature da questa mappa. |
booleano è vuoto() | Viene utilizzato per restituire true se questa mappa non contiene mappature di valori-chiave. |
Clone oggetto() | Viene utilizzato per restituire una copia superficiale di questa istanza HashMap: le chiavi e i valori stessi non vengono clonati. |
Imposta entrySet() | Viene utilizzato per restituire una vista di raccolta delle mappature contenute in questa mappa. |
Imposta keySet() | Viene utilizzato per restituire una vista impostata delle chiavi contenute in questa mappa. |
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. |
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 vengono 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. |
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. |
Esempio di HashMap Java
Vediamo un semplice esempio di HashMap per archiviare una coppia chiave-valore.
import java.util.*; public class HashMapExample1{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(4,'Grapes'); System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }Provalo adesso
Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes
In questo esempio, memorizziamo Integer come chiave e String come valore, quindi utilizziamoHashMapcome il tipo. ILMettere()Il metodo inserisce gli elementi nella mappa.
Per ottenere gli elementi chiave e valore, dovremmo chiamare i metodi getKey() e getValue(). ILMappa.Entratal'interfaccia contiene il file getKey() E getValore() metodi. Ma dovremmo chiamare il metodo entrySet() dell'interfaccia Map per ottenere l'istanza di Map.Entry.
Nessuna chiave duplicata su HashMap
Non è possibile memorizzare chiavi duplicate in HashMap. Tuttavia, se provi a memorizzare una chiave duplicata con un altro valore, sostituirà il valore.
import java.util.*; public class HashMapExample2{ public static void main(String args[]){ HashMap map=new HashMap();//Creating HashMap map.put(1,'Mango'); //Put elements in Map map.put(2,'Apple'); map.put(3,'Banana'); map.put(1,'Grapes'); //trying duplicate key System.out.println('Iterating Hashmap...'); for(Map.Entry m : map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }Provalo adesso
Iterating Hashmap... 1 Grapes 2 Apple 3 Banana
Esempio Java HashMap per aggiungere elementi()
Qui vediamo diversi modi per inserire elementi.
import java.util.*; class HashMap1{ public static void main(String args[]){ HashMap hm=new HashMap(); System.out.println('Initial list of elements: '+hm); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('After invoking put() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } hm.putIfAbsent(103, 'Gaurav'); System.out.println('After invoking putIfAbsent() method '); for(Map.Entry m:hm.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } HashMap map=new HashMap(); map.put(104,'Ravi'); map.putAll(hm); System.out.println('After invoking putAll() method '); for(Map.Entry m:map.entrySet()){ System.out.println(m.getKey()+' '+m.getValue()); } } }
Initial list of elements: {} After invoking put() method 100 Amit 101 Vijay 102 Rahul After invoking putIfAbsent() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav After invoking putAll() method 100 Amit 101 Vijay 102 Rahul 103 Gaurav 104 Ravi
Esempio Java HashMap per rimuovere () elementi
Qui vediamo diversi modi per rimuovere elementi.
import java.util.*; public class HashMap2 { public static void main(String args[]) { HashMap map=new HashMap(); map.put(100,'Amit'); map.put(101,'Vijay'); map.put(102,'Rahul'); map.put(103, 'Gaurav'); System.out.println('Initial list of elements: '+map); //key-based removal map.remove(100); System.out.println('Updated list of elements: '+map); //value-based removal map.remove(101); System.out.println('Updated list of elements: '+map); //key-value pair based removal map.remove(102, 'Rahul'); System.out.println('Updated list of elements: '+map); } }
Produzione:
Initial list of elements: {100=Amit, 101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {101=Vijay, 102=Rahul, 103=Gaurav} Updated list of elements: {102=Rahul, 103=Gaurav} Updated list of elements: {103=Gaurav}
Esempio Java HashMap per sostituire() elementi
Qui vediamo diversi modi per sostituire gli elementi.
import java.util.*; class HashMap3{ public static void main(String args[]){ HashMap hm=new HashMap(); hm.put(100,'Amit'); hm.put(101,'Vijay'); hm.put(102,'Rahul'); System.out.println('Initial list of elements:'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(102, 'Gaurav'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replace(101, 'Vijay', 'Ravi'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } System.out.println('Updated list of elements:'); hm.replaceAll((k,v) -> 'Ajay'); for(Map.Entry m:hm.entrySet()) { System.out.println(m.getKey()+' '+m.getValue()); } } }
Initial list of elements: 100 Amit 101 Vijay 102 Rahul Updated list of elements: 100 Amit 101 Vijay 102 Gaurav Updated list of elements: 100 Amit 101 Ravi 102 Gaurav Updated list of elements: 100 Ajay 101 Ajay 102 Ajay
Differenza tra HashSet e HashMap
HashSet contiene solo valori mentre HashMap contiene una voce (chiave e valore).
Esempio di Java HashMap: Libro
import java.util.*; class Book { int id; String name,author,publisher; int quantity; public Book(int id, String name, String author, String publisher, int quantity) { this.id = id; this.name = name; this.author = author; this.publisher = publisher; this.quantity = quantity; } } public class MapExample { public static void main(String[] args) { //Creating map of Books Map map=new HashMap(); //Creating Books Book b1=new Book(101,'Let us C','Yashwant Kanetkar','BPB',8); Book b2=new Book(102,'Data Communications & Networking','Forouzan','Mc Graw Hill',4); Book b3=new Book(103,'Operating System','Galvin','Wiley',6); //Adding Books to map map.put(1,b1); map.put(2,b2); map.put(3,b3); //Traversing map for(Map.Entry entry:map.entrySet()){ int key=entry.getKey(); Book b=entry.getValue(); System.out.println(key+' Details:'); System.out.println(b.id+' '+b.name+' '+b.author+' '+b.publisher+' '+b.quantity); } } }Provalo adesso
Produzione:
1 Details: 101 Let us C Yashwant Kanetkar BPB 8 2 Details: 102 Data Communications and Networking Forouzan Mc Graw Hill 4 3 Details: 103 Operating System Galvin Wiley 6
Argomenti correlati
Fattore di caricamento in HashMap
converti il carattere in una stringa java
Funzionamento di HashMap in Java | Come funziona HashMap
Differenza tra HashMap e Hashtable
Come ordinare HashMap per valore
Differenza tra HashSet e HashMap