logo

HashMap darbība Java


Kas ir jaukšana

Tas ir process, kurā objektu pārvērš veselā skaitļa vērtībā. Vesela skaitļa vērtība palīdz indeksēt un ātrāk meklēt.

Kas ir HashMap

HashMap ir daļa no Java kolekcijas sistēmas. Tas izmanto paņēmienu, ko sauc par jaukšanu. Tas ievieš kartes saskarni. Tas saglabā datus atslēgas un vērtības pārī. HashMap satur mezglu masīvu, un mezgls tiek attēlots kā klase. Tas izmanto masīvu un LinkedList datu struktūru iekšēji atslēgas un vērtības glabāšanai. HashMap ir četri lauki.

HashMap darbība Java

Pirms izprast HashMap iekšējo darbību, jums jāapzinās metodes hashCode () un equals ().

hrithik roshan
    vienāds ():Tas pārbauda divu objektu vienādību. Tas salīdzina atslēgu neatkarīgi no tā, vai tās ir vienādas vai nē. Tā ir objektu klases metode. To var ignorēt. Ja ignorējat metodi equals(), tad ir obligāti jāignorē hashCode() metode.hashCode ():Šī ir objektu klases metode. Tas atgriež objekta atmiņas atsauci vesela skaitļa formā. No metodes iegūtā vērtība tiek izmantota kā segmenta numurs. Grupas numurs ir elementa adrese kartē. Nulles atslēgas jaucējkods ir 0.Spaiņi:Mezgla masīvu sauc par spaiņiem. Katram mezglam ir tāda datu struktūra kā LinkedList. Vairāk nekā viens mezgls var koplietot vienu un to pašu segmentu. Tas var atšķirties pēc ietilpības.
HashMap darbība Java

Ievietojiet atslēgu, vērtību pāri HashMap

Mēs izmantojam metodi put(), lai HashMap ievietotu atslēgas un vērtības pāri. HashMap noklusējuma izmērs ir 16 (no 0 līdz 15).

Piemērs

Nākamajā piemērā mēs vēlamies HashMap ievietot trīs (atslēga, vērtība) pārus.

 HashMap map = new HashMap(); map.put('Aman', 19); map.put('Sunny', 29); map.put('Ritesh', 39); 

Apskatīsim, kurā indeksā atslēgas, vērtību pāris tiks saglabāts programmā HashMap. Kad mēs izsaucam metodi put(), tā aprēķina atslēgas “Aman” jaucējkodu. Pieņemsim, ka 'Aman' jaucējkods ir 2657860. Lai saglabātu atslēgu atmiņā, mums ir jāaprēķina indekss.

Indeksa aprēķināšana

Indekss samazina masīva lielumu. Indeksa aprēķināšanas formula ir šāda:

Austrālijas pilsētas
 Index = hashcode(Key) & (n-1) 

Kur n ir masīva lielums. Tādējādi 'Aman' indeksa vērtība ir:

 Index = 2657860 & (16-1) = 4 

Vērtība 4 ir aprēķinātā indeksa vērtība, kurā atslēga un vērtība tiks saglabāta HashMap.

HashMap darbība Java

Haša sadursme

Tas ir gadījumā, ja aprēķinātā indeksa vērtība ir vienāda divām vai vairākām atslēgām. Aprēķināsim jaucējkodu citai atslēgai “Sunny”. Pieņemsim, ka 'Sunny' jaucējkods ir 63281940. Lai saglabātu atslēgu atmiņā, mums ir jāaprēķina indekss, izmantojot indeksa formulu.

 Index=63281940 & (16-1) = 4 

Vērtība 4 ir aprēķinātā indeksa vērtība, kurā atslēga tiks saglabāta HashMap. Šajā gadījumā vienāds() metode pārbauda, ​​vai abas atslēgas ir vienādas vai nē. Ja atslēgas ir vienādas, aizstājiet vērtību ar pašreizējo vērtību. Pretējā gadījumā savienojiet šo mezgla objektu ar esošo mezgla objektu, izmantojot LinkedList. Tādējādi abas atslēgas tiks saglabātas indeksā 4.

HashMap darbība Java

Tāpat mēs saglabāsim atslēgu 'Ritesh'. Pieņemsim, ka atslēgas jaucējkods ir 2349873. Indeksa vērtība būs 1. Tādējādi šī atslēga tiks saglabāta indeksā 1.

java nejaušo skaitļu ģenerators
HashMap darbība Java

get() metode programmā HashMap

metode get() tiek izmantota, lai iegūtu vērtību pēc tās atslēgas. Tas neizgūs vērtību, ja nezināt atslēgu. Kad tiek izsaukta metode get(K Key), tā aprēķina atslēgas jaucējkodu.

Pieņemsim, ka mums ir jāatnes atslēga 'Aman'. Tiks izsaukta šāda metode.

 map.get(new Key('Aman')); 

Tas ģenerē jaucējkodu kā 2657860. Tagad aprēķiniet indeksa vērtību 2657860, izmantojot indeksa formulu. Indeksa vērtība būs 4, kā mēs aprēķinājām iepriekš. Get() metode meklē indeksa vērtību 4. Tā salīdzina pirmo elementu Key ar doto atslēgu. Ja abas atslēgas ir vienādas, tā atgriež vērtību else check the next element in the mezglā, ja tāds eksistē. Mūsu scenārijā tas tiek atrasts kā pirmais mezgla elements un atgriež vērtību 19.

Atnesīsim vēl vienu atslēgu 'Sunny'.

Atslēgas 'Sunny' jaucējkods ir 63281940. Aprēķinātā indeksa vērtība 63281940 ir 4, kā mēs aprēķinājām put() metodei. Dodieties uz masīva indeksu 4 un salīdziniet pirmā elementa atslēgu ar doto atslēgu. Tas arī salīdzina Keys. Mūsu scenārijā dotā atslēga ir otrais elements, bet nākamais mezglā ir nulle. Tas salīdzina otro elementu Key ar norādīto atslēgu un atgriež vērtību 29. Tas atgriež nulli, ja nākamais mezgls ir nulle.