logo

Java HashMap

Java HashMap klases hierarhija

Java HashMap klase ievieš kartes saskarni, kas ļauj mums lai saglabātu atslēgu un vērtību pāri , kur atslēgām jābūt unikālām. Ja mēģināsit ievietot atslēgas dublikātu, tā aizstās atbilstošās atslēgas elementu. Ir viegli veikt darbības, izmantojot atslēgas indeksu, piemēram, atjaunināšanu, dzēšanu utt. HashMap klase ir atrodamajava.utiliepakojums.

Java HashMap ir kā mantotā Hashtable klase, taču tā nav sinhronizēta. Tas ļauj mums saglabāt arī nulles elementus, taču jābūt tikai vienai nulles atslēgai. Kopš Java 5 tas tiek apzīmēts kāHashMap, kur K apzīmē atslēgu un V apzīmē vērtību. Tas pārmanto AbstractMap klasi un ievieš kartes saskarni.

Punkti, kas jāatceras

  • Java HashMap satur vērtības, kuru pamatā ir atslēga.
  • Java HashMap satur tikai unikālas atslēgas.
  • Java HashMap var būt viena nulles atslēga un vairākas nulles vērtības.
  • Java HashMap nav sinhronizēta.
  • Java HashMap neuztur nekādu kārtību.
  • Java HashMap klases sākotnējā noklusējuma jauda ir 16 ar slodzes koeficientu 0,75.

HashMap klases hierarhija

Kā parādīts iepriekšējā attēlā, HashMap klase paplašina AbstractMap klasi un ievieš Map saskarni.

HashMap klases deklarācija

Apskatīsim deklarāciju klasei java.util.HashMap.

autocad stiepšanas komanda
 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable 

HashMap klases parametri

Apskatīsim java.util.HashMap klases parametrus.

    K: Tas ir atslēgu veids, ko uztur šī karte.IN: tas ir kartēto vērtību veids.

Java HashMap klases konstruktori

KonstruktorsApraksts
HashMap()To izmanto, lai izveidotu noklusējuma HashMap.
HashMap (karte m)To izmanto, lai inicializētu jaucējkarti, izmantojot dotā kartes objekta m elementus.
HashMap (iespējams)To izmanto, lai inicializētu jaucējkartes kapacitāti līdz noteiktai vesela skaitļa vērtībai, kapacitātei.
HashMap (iespējams, peldošā slodzes koeficients)To izmanto, lai inicializētu gan jaucējkartes ietilpību, gan slodzes koeficientu, izmantojot tās argumentus.

Java HashMap klases metodes

MetodeApraksts
tukšums skaidrs ()To izmanto, lai no šīs kartes noņemtu visus kartējumus.
Būla vērtība ir tukša()To izmanto, lai atgrieztu patiesu, ja šajā kartē nav atslēgu vērtību kartējumu.
Objekta klons ()To izmanto, lai atgrieztu šīs HashMap instances seklu kopiju: pašas atslēgas un vērtības netiek klonētas.
Iestatīt ierakstuSet()To izmanto, lai atgrieztu šajā kartē ietverto kartējumu kolekcijas skatu.
Iestatīt keySet()To izmanto, lai atgrieztu šajā kartē ietverto taustiņu kopskatu.
V put (objekta atslēga, objekta vērtība)To izmanto, lai kartē ievietotu ierakstu.
nevar likt visu (kartes karte)To izmanto, lai kartē ievietotu norādīto karti.
V putJaNav(atslēga K, V vērtība)Tas ievieto norādīto vērtību ar norādīto atslēgu kartē tikai tad, ja tā vēl nav norādīta.
V noņemšana (objekta atslēga)To izmanto, lai dzēstu norādītās atslēgas ierakstu.
Būla noņemšana (objekta atslēga, objekta vērtība)Tas no kartes noņem norādītās vērtības ar saistītajām norādītajām atslēgām.
V aprēķins (K taustiņš, BiFunction pārkartošanas funkcija)To izmanto, lai aprēķinātu kartējumu norādītajai atslēgai un tās pašreizējai kartētajai vērtībai (vai nullei, ja pašreizējā kartējuma nav).
V computeIfAbsent (taustiņš K, funkciju kartēšanas funkcija)To izmanto, lai aprēķinātu tās vērtību, izmantojot doto kartēšanas funkciju, ja norādītā atslēga jau nav saistīta ar vērtību (vai ir kartēta uz nulli), un ievada to šajā kartē, ja vien nav nulles.
V computeIfPresent (taustiņš K, BiFunction remappingFunction)To izmanto, lai aprēķinātu jaunu kartējumu, ņemot vērā atslēgu un tās pašreizējo kartēto vērtību, ja norādītās atslēgas vērtība ir un nav nulle.
Būla saturs(objekta vērtība)Šī metode atgriež patieso vērtību, ja kartē pastāv kāda vērtība, kas ir vienāda ar vērtību, pretējā gadījumā atgriež false.
Būla vērtība saturKey (objekta atslēga)Šī metode atgriež patieso vērtību, ja kartē pastāv atslēga, kas ir vienāda ar atslēgu, pretējā gadījumā atgriež false.
Būla ir vienāds (Objekts o)To izmanto, lai salīdzinātu norādīto objektu ar karti.
spēkā neesošs par katru (divu patērētāju darbība)Tas veic doto darbību katram ierakstam kartē, līdz visi ieraksti ir apstrādāti vai darbība rada izņēmumu.
V get (objekta atslēga)Šī metode atgriež objektu, kas satur ar atslēgu saistīto vērtību.
V getOrDefault (objekta atslēga, V noklusējuma vērtība)Tas atgriež vērtību, ar kuru norādītā atslēga ir kartēta, vai noklusējuma vērtību, ja kartē nav atslēgas kartējuma.
Būla vērtība ir tukša()Šī metode atgriež patieso vērtību, ja karte ir tukša; atgriež false, ja tajā ir vismaz viena atslēga.
V sapludināšana (atslēga K, V vērtība, BiFunction remappingFunction)Ja norādītā atslēga vēl nav saistīta ar vērtību vai ir saistīta ar nulli, saista to ar norādīto vērtību, kas nav nulle.
V nomaiņa (taustiņš K, V vērtība)Tas aizstāj norādīto vērtību noteiktai atslēgai.
Būla nomaiņa (atslēga K, V oldValue, V newValue)Tas aizstāj veco vērtību ar jauno vērtību noteiktai atslēgai.
anulēt visu (funkcija BiFunction)Tas aizvieto katra ieraksta vērtību ar šīs funkcijas izsaukšanas rezultātu šajā ierakstā, līdz visi ieraksti ir apstrādāti vai funkcija rada izņēmumu.
Kolekcijas vērtības()Tas atgriež kartē ietverto vērtību kolekcijas skatu.
int size ()Šī metode atgriež ierakstu skaitu kartē.

Java HashMap piemērs

Apskatīsim vienkāršu HashMap piemēru, lai saglabātu atslēgu un vērtību pāri.

 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()); } } } 
Izmēģiniet to tūlīt
 Iterating Hashmap... 1 Mango 2 Apple 3 Banana 4 Grapes 

Šajā piemērā mēs saglabājam veselu skaitli kā atslēgu un String kā vērtību, tāpēc mēs izmantojamHashMapkā veids. Thelikt ()metode ievieto elementus kartē.

Lai iegūtu atslēgas un vērtības elementus, mums vajadzētu izsaukt metodes getKey() un getValue(). TheKarte.Ieejainterfeiss satur getKey() un getValue() metodes. Bet, lai iegūtu Map.Entry gadījumu, mums vajadzētu izsaukt Map saskarnes metodi entrySet().

HashMap nav dublikāta atslēgas

HashMap nevar saglabāt dublētās atslēgas. Tomēr, ja mēģināt saglabāt atslēgas dublikātu ar citu vērtību, tā aizstās vērtību.

 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()); } } } 
Izmēģiniet to tūlīt
 Iterating Hashmap... 1 Grapes 2 Apple 3 Banana 

Java HashMap piemērs, lai pievienotu () elementus

Šeit mēs redzam dažādus veidus, kā ievietot elementus.

 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 piemērs () elementu noņemšanai

Šeit mēs redzam dažādus veidus, kā noņemt elementus.

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

Izvade:

 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 piemērs () elementu aizstāšanai

Šeit mēs redzam dažādus veidus, kā aizstāt elementus.

 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 

Atšķirība starp HashSet un HashMap

HashSet satur tikai vērtības, savukārt HashMap satur ierakstu (atslēga un vērtība).

Java HashMap piemērs: grāmata

 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); } } } 
Izmēģiniet to tūlīt

Izvade:

mainīgais globālais JavaScript
 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 

Saistītās tēmas

Kā iterēt karti Java

Kā kārtot HashMap Java

Slodzes koeficients programmā HashMap

HashMap darbība Java | Kā darbojas HashMap

Atšķirība starp HashMap un Hashtable

Kā kārtot HashMap pēc vērtības

Atšķirība starp HashSet un HashMap

Atšķirība starp HashMap un TreeMap

Java kartes interfeiss