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.
Pirms izprast HashMap iekšējo darbību, jums jāapzinās metodes hashCode () un equals ().
hrithik roshan
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.
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.
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
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.