logo

Java Hash Map

Gerarchia delle classi Java HashMap

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.

    K: È il tipo di chiavi gestite da questa mappa.IN: È il tipo di valori mappati.

Costruttori della classe Java HashMap

CostruttoreDescrizione
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

MetodoDescrizione
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

Come iterare la mappa in Java

Come ordinare HashMap in Java

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

Differenza tra HashMap e TreeMap

Interfaccia della mappa Java