logo

Mapa skrótów Java

Hierarchia klas Java HashMap

Jawa HashMapa class implementuje interfejs Map, który nam na to pozwala do przechowywania pary klucz-wartość , gdzie klucze powinny być unikalne. Jeśli spróbujesz wstawić zduplikowany klucz, zastąpi on element odpowiedniego klucza. Przy użyciu indeksu klucza można łatwo wykonywać operacje takie jak aktualizacja, usuwanie itp. Klasa HashMap znajduje się wjava.utilpakiet.

HashMap w Javie przypomina starszą klasę Hashtable, ale nie jest zsynchronizowana. Pozwala nam to przechowywać również elementy zerowe, ale powinien być tylko jeden klucz zerowy. Od wersji Java 5 jest to oznaczone jakoHashMapa, gdzie K oznacza klucz, a V wartość. Dziedziczy klasę AbstractMap i implementuje interfejs Map.

Punkty do zapamiętania

  • Java HashMap zawiera wartości oparte na kluczu.
  • Java HashMap zawiera tylko unikalne klucze.
  • Java HashMap może mieć jeden klucz zerowy i wiele wartości zerowych.
  • Java HashMap nie jest zsynchronizowany.
  • Java HashMap nie utrzymuje porządku.
  • Początkowa domyślna pojemność klasy Java HashMap wynosi 16 przy współczynniku obciążenia 0,75.

Hierarchia klasy HashMap

Jak pokazano na powyższym rysunku, klasa HashMap stanowi rozwinięcie klasy AbstractMap i implementację interfejsu Map.

Deklaracja klasy HashMap

Zobaczmy deklarację klasy java.util.HashMap.

wyrównaj obraz za pomocą CSS
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

Parametry klasy HashMap

Zobaczmy parametry klasy java.util.HashMap.

    K: Jest to typ kluczy obsługiwanych przez tę mapę.W: Jest to typ mapowanych wartości.

Konstruktory klasy Java HashMap

KonstruktorOpis
HashMap()Służy do konstruowania domyślnej mapy HashMap.
HashMap(Mapa m)Służy do inicjowania mapy mieszającej przy użyciu elementów danego obiektu Map m.
HashMap (int pojemność)Służy do inicjowania pojemności mapy mieszającej do podanej wartości całkowitej, pojemność.
HashMap (pojemność int, współczynnik obciążenia float)Służy do inicjowania zarówno pojemności, jak i współczynnika obciążenia mapy skrótu za pomocą jej argumentów.

Metody klasy Java HashMap

metodaOpis
puste jasne()Służy do usuwania wszystkich mapowań z tej mapy.
wartość logiczna jest pusta()Służy do zwracania wartości true, jeśli ta mapa nie zawiera mapowań klucz-wartość.
Klon obiektu()Służy do zwracania płytkiej kopii tej instancji HashMap: same klucze i wartości nie są klonowane.
Ustaw wpisSet()Służy do zwracania widoku kolekcji mapowań zawartych na tej mapie.
Ustaw zestaw kluczy()Służy do zwracania ustawionego widoku kluczy zawartych na tej mapie.
V put (klucz obiektu, wartość obiektu)Służy do wstawienia wpisu na mapie.
void putAll (mapa mapy)Służy do wstawienia określonej mapy na mapę.
V putIfAbsent(K klucz, wartość V)Wstawia określoną wartość z określonym kluczem na mapie tylko wtedy, gdy nie została ona jeszcze określona.
V usuń (klucz obiektu)Służy do usuwania wpisu dla określonego klucza.
wartość logiczna usuń (klucz obiektu, wartość obiektu)Usuwa z mapy określone wartości wraz z powiązanymi określonymi kluczami.
Obliczenia V (klawisz K, funkcja ponownego mapowania BiFunction)Służy do obliczenia mapowania dla określonego klucza i jego aktualnie mapowanej wartości (lub wartości null, jeśli nie ma bieżącego mapowania).
V computeIfAbsent (klawisz K, funkcja mapowania funkcji)Służy do obliczenia jego wartości za pomocą danej funkcji mapującej, jeśli podany klucz nie jest już powiązany z wartością (lub jest odwzorowany na wartość null) i wprowadza go do tego odwzorowania, chyba że ma wartość null.
V computeIfPresent (klawisz K, funkcja remapowania BiFunction)Służy do obliczenia nowego mapowania, biorąc pod uwagę klucz i jego aktualnie odwzorowaną wartość, jeśli wartość dla określonego klucza jest obecna i nie jest null.
wartość logiczna zawiera wartość (wartość obiektu)Ta metoda zwraca wartość true, jeśli na mapie istnieje wartość równa wartości, w przeciwnym razie zwraca wartość false.
wartość logiczna zawiera klucz (klucz obiektu)Ta metoda zwraca wartość true, jeśli na mapie istnieje klucz równy temu kluczowi, w przeciwnym razie zwraca wartość false.
wartość logiczna równa się (obiekt o)Służy do porównania określonego Obiektu z Mapą.
void forEach (akcja BiConsumer)Wykonuje daną akcję dla każdego wpisu na mapie, dopóki wszystkie wpisy nie zostaną przetworzone lub akcja nie zgłosi wyjątku.
V get (klucz obiektu)Ta metoda zwraca obiekt zawierający wartość powiązaną z kluczem.
V getOrDefault (klucz obiektu, V wartość domyślna)Zwraca wartość, na którą odwzorowany jest określony klucz, lub wartość domyślną, jeśli mapa nie zawiera mapowania klucza.
wartość logiczna jest pusta()Ta metoda zwraca wartość true, jeśli mapa jest pusta; zwraca false, jeśli zawiera co najmniej jeden klucz.
Scalanie V (klawisz K, wartość V, funkcja ponownego mapowania BiFunction)Jeśli określony klucz nie jest już powiązany z wartością lub jest powiązany z wartością null, kojarzy go z podaną wartością inną niż null.
Zamień V (klawisz K, wartość V)Zastępuje określoną wartość dla określonego klucza.
zamiana logiczna (klawisz K, V stara wartość, V nowa wartość)Zastępuje starą wartość nową wartością dla określonego klucza.
nieważne zamień wszystko (funkcja BiFunction)Zastępuje wartość każdego wpisu wynikiem wywołania danej funkcji dla tego wpisu, dopóki wszystkie wpisy nie zostaną przetworzone lub funkcja nie zgłosi wyjątku.
Wartości kolekcji()Zwraca widok kolekcji wartości zawartych na mapie.
rozmiar całkowity()Ta metoda zwraca liczbę wpisów na mapie.

Przykład Java HashMap

Zobaczmy prosty przykład HashMap do przechowywania pary klucz-wartość.

 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()); } } } 
Przetestuj teraz
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

W tym przykładzie przechowujemy liczbę całkowitą jako klucz i ciąg jako wartość, więc używamyHashMapajako typ. Theumieścić()Metoda wstawia elementy na mapę.

Aby uzyskać elementy key i value należy wywołać metody getKey() i getValue(). TheMapa.Wpisinterfejs zawiera Weź klucz() I getValue() metody. Jednak powinniśmy wywołać metodę EntrySet() interfejsu Map, aby uzyskać instancję Map.Entry.

Brak zduplikowanego klucza w HashMap

Nie można przechowywać duplikatów kluczy w HashMap. Jeśli jednak spróbujesz zapisać zduplikowany klucz z inną wartością, zastąpi ona tę wartość.

 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()); } } } 
Przetestuj teraz
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

Przykład Java HashMap do dodawania elementów ().

Tutaj widzimy różne sposoby wstawiania elementów.

 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 

Przykład Java HashMap do usuwania elementów ().

Tutaj widzimy różne sposoby usuwania elementów.

 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); } } 

Wyjście:

 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} 

Przykład Java HashMap do zamiany elementów ().

Tutaj widzimy różne sposoby zastępowania elementów.

 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 

Różnica między HashSet i HashMap

HashSet zawiera tylko wartości, podczas gdy HashMap zawiera wpis (klucz i wartość).

Przykład Java HashMap: Książka

 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); } } } 
Przetestuj teraz

Wyjście:

 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 

Powiązane tematy

Jak iterować mapę w Javie

Jak sortować HashMap w Javie

Współczynnik obciążenia w HashMap

Działanie HashMap w Javie | Jak działa HashMap

Różnica między HashMap i Hashtable

Jak sortować HashMap według wartości

Różnica między HashSet i HashMap

Różnica między HashMap i TreeMap

Interfejs mapy Java

typ powrotu w Javie