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.
Java HashMap klases konstruktori
Konstruktors | Apraksts |
---|---|
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
Metode | Apraksts |
---|---|
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
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