Java HashMap klasa implementira Map sučelje koje nam omogućuje za pohranjivanje para ključ i vrijednost , gdje ključevi trebaju biti jedinstveni. Ako pokušate umetnuti duplikat ključa, on će zamijeniti element odgovarajućeg ključa. Lako je izvoditi operacije pomoću ključnog indeksa kao što su ažuriranje, brisanje itd. Klasa HashMap nalazi se ujava.utilpaket.
HashMap u Javi je poput naslijeđene klase Hashtable, ali nije sinkroniziran. Omogućuje nam da pohranimo i nulte elemente, ali treba postojati samo jedan nulti ključ. Od Jave 5, označava se kaoHashMap, gdje K označava ključ, a V vrijednost. Nasljeđuje klasu AbstractMap i implementira sučelje Map.
Bodovi za pamćenje
- Java HashMap sadrži vrijednosti temeljene na ključu.
- Java HashMap sadrži samo jedinstvene ključeve.
- Java HashMap može imati jedan null ključ i više null vrijednosti.
- Java HashMap nije sinkroniziran.
- Java HashMap ne održava red.
- Početni zadani kapacitet Java HashMap klase je 16 s faktorom opterećenja od 0,75.
Hijerarhija HashMap klase
Kao što je prikazano na gornjoj slici, klasa HashMap proširuje klasu AbstractMap i implementira Map sučelje.
Deklaracija klase HashMap
Pogledajmo deklaraciju za klasu java.util.HashMap.
gimp izvoz kao jpg
public class HashMap extends AbstractMap implements Map, Cloneable, Serializable
Parametri klase HashMap
Pogledajmo parametre za klasu java.util.HashMap.
Konstruktori Java HashMap klase
Konstruktor | Opis |
---|---|
HashMap() | Koristi se za izradu zadanog HashMapa. |
HashMap(Mapa m) | Koristi se za inicijalizaciju hash mape korištenjem elemenata zadanog Map objekta m. |
HashMap (int kapacitet) | Koristi se za inicijalizaciju kapaciteta hash karte na zadanu vrijednost cijelog broja, kapacitet. |
HashMap(int kapacitet, float faktor opterećenja) | Koristi se za inicijalizaciju kapaciteta i faktora opterećenja hash mape pomoću svojih argumenata. |
Metode Java HashMap klase
metoda | Opis |
---|---|
praznina jasno() | Koristi se za uklanjanje svih preslikavanja s ove karte. |
Boolean isEmpty() | Koristi se za vraćanje true ako ova mapa ne sadrži preslikavanja ključa i vrijednosti. |
Klon objekta() | Koristi se za vraćanje plitke kopije ove instance HashMapa: sami ključevi i vrijednosti nisu klonirani. |
Postavi unosSet() | Koristi se za povratak prikaza zbirke preslikavanja sadržanih u ovoj karti. |
Postavi keySet() | Koristi se za povratak postavljenog prikaza ključeva sadržanih u ovoj mapi. |
V put(ključ objekta, vrijednost objekta) | Koristi se za umetanje unosa u kartu. |
void putAll(Map map) | Koristi se za umetanje navedene karte u kartu. |
V putIfAbsent(ključ K, vrijednost V) | Umeće navedenu vrijednost s navedenim ključem u mapu samo ako već nije navedena. |
V ukloniti (ključ objekta) | Koristi se za brisanje unosa za navedeni ključ. |
boolean remove(ključ objekta, vrijednost objekta) | Uklanja navedene vrijednosti s pridruženim navedenim ključevima s karte. |
V compute (tipka K, BiFunction remappingFunction) | Koristi se za izračunavanje preslikavanja za navedeni ključ i njegove trenutne preslikane vrijednosti (ili null ako trenutno ne postoji preslikavanje). |
V computeIfAbsent(tipka K, funkcija mapiranja funkcije) | Koristi se za izračunavanje svoje vrijednosti pomoću zadane funkcije mapiranja, ako navedeni ključ već nije povezan s vrijednošću (ili je preslikan na null), i unosi ga u ovu mapu osim ako nije null. |
V computeIfPresent(tipka K, BiFunction remappingFunction) | Koristi se za izračunavanje novog preslikavanja s obzirom na ključ i njegovu trenutnu mapiranu vrijednost ako je vrijednost za navedeni ključ prisutna i nije nula. |
boolean containsValue(vrijednost objekta) | Ova metoda vraća true ako neka vrijednost jednaka vrijednosti postoji unutar mape, inače vraća false. |
boolean containsKey(ključ objekta) | Ova metoda vraća true ako neki ključ jednak ključu postoji unutar mape, inače vraća false. |
Boolean jednako (objekt o) | Koristi se za usporedbu navedenog Objekta s Kartom. |
void forEach(radnja BiConsumer) | Izvodi zadanu radnju za svaki unos u mapi sve dok se svi unosi ne obrade ili dok akcija ne izbaci iznimku. |
V get (ključ objekta) | Ova metoda vraća objekt koji sadrži vrijednost povezanu s ključem. |
V getOrDefault(ključ objekta, V defaultValue) | Vraća vrijednost u koju je preslikan navedeni ključ ili defaultValue ako mapa ne sadrži preslikavanje za ključ. |
Boolean isEmpty() | Ova metoda vraća true ako je karta prazna; vraća false ako sadrži barem jedan ključ. |
V spajanje (K ključ, V vrijednost, BiFunction remappingFunction) | Ako navedeni ključ već nije povezan s vrijednošću ili je povezan s null, pridružuje ga danoj vrijednosti koja nije null. |
V zamjena (K ključ, V vrijednost) | Zamjenjuje navedenu vrijednost za određeni ključ. |
boolean zamjena (ključ K, V stara vrijednost, V nova vrijednost) | Zamjenjuje staru vrijednost novom vrijednošću za određeni ključ. |
void replaceAll (funkcija BiFunction) | Zamjenjuje vrijednost svakog unosa rezultatom pozivanja dane funkcije na tom unosu dok se svi unosi ne obrade ili funkcija ne izbaci iznimku. |
Vrijednosti zbirke() | Vraća prikaz zbirke vrijednosti sadržanih u karti. |
int size() | Ova metoda vraća broj unosa na karti. |
Java HashMap primjer
Pogledajmo jednostavan primjer HashMapa za pohranu para ključa i vrijednosti.
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()); } } }Testirajte sada
Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes
U ovom primjeru pohranjujemo Integer kao ključ i String kao vrijednost, tako da koristimoHashMapkao tip. Thestaviti()metoda umeće elemente u mapu.
Da bismo dobili elemente ključa i vrijednosti, trebali bismo pozvati metode getKey() i getValue(). TheKarta.Ulazsučelje sadrži getKey() i getValue() metode. No, trebali bismo pozvati metodu entrySet() sučelja Map da dobijemo instancu Map.Entry.
Nema duplikata ključa na HashMapu
Ne možete pohraniti duple ključeve u HashMap. Međutim, ako pokušate pohraniti duplikat ključa s drugom vrijednošću, on će zamijeniti vrijednost.
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()); } } }Testirajte sada
Iterating Hashmap... 1 Grapes 2 Apple 3 Banana
Java HashMap primjer za add() elemente
Ovdje vidimo različite načine umetanja elemenata.
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
Java HashMap primjer za uklanjanje() elemenata
Ovdje vidimo različite načine uklanjanja elemenata.
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); } }
Izlaz:
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}
Java HashMap primjer za replace() elemente
Ovdje vidimo različite načine zamjene elemenata.
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
Razlika između HashSeta i HashMapa
HashSet sadrži samo vrijednosti dok HashMap sadrži unos (ključ i vrijednost).
Java HashMap Primjer: Knjiga
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); } } }Testirajte sada
Izlaz:
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
Povezane teme
Faktor opterećenja u HashMapu
Rad HashMapa u Javi | Kako radi HashMap
Razlika između HashMap i Hashtable
Kako sortirati HashMap po vrijednosti
grupiranje
Razlika između HashSeta i HashMapa