Java-da LinkedHashMap sinifi a-ya bənzər bir LinkedList tətbiqidir HashMap ancaq yerləşdirmə qaydasını qoruyur. HashMap sinifini genişləndirir və Xəritə interfeysini tətbiq edir. LinkedHashMapdakı bütün qovşaqlarda təkrarlamaq üçün ikiqat LinkedList tətbiqetməsindən istifadə edir.
Mündəricat
LinkedHashMap xüsusiyyətləri
- Elementləri daxil etdiyi qaydada giriş qaydalarını qoruyur.
- LinkedHashMap yalnız unikal məlumatlardan ibarət ola bilər
- Yalnız bir sıfır düyməyə, lakin birdən çox boş qiymətə sahib ola bilər.
LinkedHashMap-da inşaatçılar
Aşağıda LinkedHashMap sinfində olan konstruktorlar var.
konstruktor | təsvir |
---|---|
LinkedHashMap () | Varsayılan bir LinkedHashMap başlatır |
LinkedHashMap (Xəritə m) | LinkedHashmap-i Map m elementləri ilə başlatır |
LinkedHashMap (int tutumu) | Linkedhashmap-i göstərilən tutum tam ədədi ilə başlatır |
LinkedHashMap (int tutumu, şamandıra yükləmə faktoru) | Müəyyən edilmiş tutum və yük faktoru ilə Linkedhashmap-i başlatır |
LinkedHashMap (int tutumu, float loadFactor, boolean accessOrder) | Müəyyən edilmiş tutum və yük əmsalı ilə LinkedhashMap-i giriş qaydası rejimi ilə birlikdə başlatır |
Java-da LinkedHashMap metodları
Üsul | təsvir | Parametr |
---|---|---|
boşluq təmiz () | Bu xəritədəki bütün uyğunlaşmaları silir, yəni xəritə boş olacaq | |
Obyekt klonu () | Bu HashMap nümunəsinin dayaz bir nüsxəsini qaytarır. Əsas və dəyərlərin özləri klonlaşdırılmır | |
Boolean tərkibindəKey (Nesne açarı) | Göstərilən düymə üçün bir eşleme dəyəri varsa, doğru qaytarır | açar - dəyəri almalı olduğumuz açar |
BooleanValue ehtiva edir (Nesne dəyəri) | Göstərilən dəyər üçün düymənin uyğunlaşdırılması varsa, doğru qayıdır | dəyər - göstərilən açarın eşlendiği dəyər |
Dəst girişSet () | Xəritənin uyğunlaşdırılmasının müəyyən bir görünüşünü qaytarır | |
Mantiq bərabərdir (O obyekt) | Obyekt xəritənin eyni xəritələməsinə sahibdirsə, doğru qayıdır | o - müqayisə ediləcək obyekt |
Tamsayı almaq (obyekt açarı) | Xəritədə göstərilən açarın dəyərini qaytarır. Xəritəçəkmə yoxdursa sıfır qaytarır | açar - dəyər eşlemesinin alınması lazım olan açar |
Tamsayı getOrDefault (Nəzarət açarı, Tamsayılan dəyər) | Eşlenmişse göstərilən açarın dəyərini qaytarır, başqa bir eşleme olmadığı təqdirdə default dəyəri qaytarır | açar - dəyər verdiyimiz düymənin qaytarılması lazımdır defaultvalue - Xəritəçəkmə olmadıqda qaytarılacaq default dəyər |
int hashCode () | Xəritənin hashcod dəyərini qaytarır | |
Boole isEmpty () | Doğru qayıdır, hashmapin heç bir açar dəyər cütü yoxdur | |
KeySet () seçin | Xəritədə mövcud olan düymələrin müəyyən görünüşünü qaytarır | |
Tamsayı qoymaq (String açarı, int dəyəri) | Açarı dəyərlə əlaqələndirir. Açar artıq mövcuddursa, köhnə dəyəri yeni dəyərlə əvəz edir | düymə - Xəritəçəkmə üçün açar dəyər - göstərilən açar üçün dəyər |
boşluqHamısı (Xəritə m) | M-nin bütün əsas dəyər dəyərlərini cari xəritə ilə əlaqələndirir | m - cari xəritəyə əlavə ediləcək Xəritəçəkmə nüsxələri |
Tamsayı putIfAbsent (Simli düymə, Tam dəyər) | Zaten eşlenmemişse dəyəri əlaqələndirir, başqa bir düyməyə cari dəyəri qaytarır | düymə - Xəritəçəkmə üçün açar dəyər - əlaqələndiriləcək dəyər |
Tamsayı silin (Nişan açarı) | Xəritədə göstərilən açar üçün xəritəni silir | açar - Xəritəçəkmənin silinməsi lazım olan xəritədəki açar |
Mantiqi silmək (Nesne açarı, Nesne dəyəri) | Göstərilən açarın girişini yalnız göstərilən dəyərlə uyğunlaşdırıldığı təqdirdə silir | düymə - xəritədəki açar dəyər - düyməyə uyğun dəyər |
Tamsayı əvəz (Sətir açarı, Tamsayı dəyəri) | Göstərilən açarın dəyərini yalnız indiki vaxtda bəzi dəyərlərlə uyğunlaşdırıldığı təqdirdə dəyəri ilə əvəz edir | düymə - xəritədəki açar dəyər - dəyişdiriləcək dəyər |
Boolean əvəzetmə (String açarı, integer oldvalue, Integer newvalue) | Göstərilən açarın girişini yalnız əvvəlcədən göstərilən köhnə dəyərlə uyğunlaşdırıldığı təqdirdə yeni dəyərlə əvəz edir | açar - xəritədəki açar oldvalue - köhnə dəyər açarla eşlendi newvalue - yeni dəyər açara uyğunlaşdırılmalıdır |
int ölçüsü () | Xəritənin ölçüsünü qaytarır | |
String toString () | Xəritənin bir simli təsvirini qaytarır | |
Kolleksiya dəyərləri () | Xəritədəki dəyərlərin kolleksiya görünüşünü qaytarır |
LinkedHashMap-in Java-da işləməsi
Java-da LinkedHashMap, ikiqat əlaqəli tətbiqetmə üzərində işləyir siyahı yəni növbəti elementin və əvvəlki elementin ünvanlarını ehtiva edir. Bu şəkildə əlavə qaydasını da qoruyur.
Aşağıdakı diaqramda prev əvvəlki elementin ünvanını, sonrakı isə növbəti elementin ünvanını göstərir.
Misal: LinkedHashMap-ə element əlavə etmək
Aşağıda LinkedHashMap-ə element əlavə etmək nümunəsi verilmişdir. Daxil etmə qaydasını qoruduğunu və elementləri daxil etdiyimiz qaydada göstərdiyini görə bilərik. Ancaq bu funksionallıq əsas fərq olan HashMap-də mövcud deyil.
import java.util.LinkedHashMap; public class AddElements { public static void main(String[] args) { LinkedHashMap<Integer,String> lh = new LinkedHashMap<Integer,String>(); lh.put(1, "Aarthi"); lh.put(2, "Bahrathi"); lh.put(3, "Chandini"); System.out.println("Elements in the LinkedHashMap: " + lh); LinkedHashMap<Integer,String> lhm = new LinkedHashMap<Integer,String>(); lhm.put(4, "Devi"); lhm.put(5, "Fathima"); lh.putAll(lhm); System.out.println("Elements in the LinkedHashMap after adding Map elements: " + lh); } }
Elements in the LinkedHashMap: {1=Aarthi, 2=Bahrathi, 3=Chandini} Elements in the LinkedHashMap after adding Map elements: {1=Aarthi, 2=Bahrathi, 3=Chandini, 4=Devi, 5=Fathima}
Nümunə: LinkedHashMap-də elementləri yeniləyin
Istifadə put()
üsul, mövcud olduqda mövcud açarın dəyərini əvəz edə bilərik. Aşağıdakı nümunədə “2” düyməsini əvəz edirik. Bu açar artıq mövcud olduğundan köhnə dəyəri yeni dəyərlə əvəz edəcək, əks halda yeni bir element olaraq əlavə edəcəkdir.
import java.util.LinkedHashMap; public class AddElements { public static void main(String[] args) { LinkedHashMap<Integer,String> lh = new LinkedHashMap<Integer,String>(); lh.put(1, "Aarthi"); lh.put(2, "Bharathi"); lh.put(3, "Chandini"); System.out.println("Elements in the LinkedHashMap: " + lh); //Update value lh.put(2, "Sarika"); System.out.println("Elements in the LinkedHashMap after updating the second element: " + lh); } }
Elements in the LinkedHashMap: {1=Aarthi, 2=Bharathi, 3=Chandini} Elements in the LinkedHashMap after updating the second element: {1=Aarthi, 2=Sarika, 3=Chandini}
Dəyərlərini də istifadə edərək yeniləyə bilərik replace()
metodu.
import java.util.LinkedHashMap; public class AddElements { public static void main(String[] args) { LinkedHashMap<Integer,String> lh = new LinkedHashMap<Integer,String>(); lh.put(1, "Aarthi"); lh.put(2, "Bharathi"); lh.put(3, "Chandini"); System.out.println("Elements in the LinkedHashMap: " + lh); lh.replace(3, "Chandru"); lh.replace(1, "Aarthi", "Akash"); System.out.println("Elements in the LinkedHashMap after using the replace method: " + lh); } }
Elements in the LinkedHashMap: {1=Aarthi, 2=Bharathi, 3=Chandini} Elements in the LinkedHashMap after using the replace method: {1=Akash, 2=Bharathi, 3=Chandru}
Nümunə: Java-da LinkedHashMap-dən elementləri silin
Elementləri Java-da LinkedHashMap-dən silə və ya silə bilərik remove()
üsul. LinkedHashMapdakı bütün elementləri silmək üçün clear()
metod. Xəritə istifadə edərək xəritənin boş olub olmadığını yoxlaya bilərik isEmpty()
metodu.
import java.util.LinkedHashMap; public class RemoveElements { public static void main(String[] args) { LinkedHashMap<Integer,String> lh = new LinkedHashMap<Integer,String>(); lh.put(1, "Aarthi"); lh.put(2, "Bahrathi"); lh.put(3, "Chandini"); System.out.println("Elements in the LinkedHashMap: " + lh); lh.remove(2); System.out.println("Elements in the LinkedHashMap after removing the 2nd element: " + lh); lh.remove(1, "Aarthi"); System.out.println("Elements in the LinkedHashMap after removing the 1st element: " + lh); lh.clear(); System.out.println("Is LinkedHashMap empty: " + lh.isEmpty()); } }
Elements in the LinkedHashMap: {1=Aarthi, 2=Bahrathi, 3=Chandini} Elements in the LinkedHashMap after removing the 2nd element: {1=Aarthi, 3=Chandini} Elements in the LinkedHashMap after removing the 1st element: {3=Chandini} Is LinkedHashMap empty: true
Nümunə: Java-da LinkedHashMap elementləri ilə təkrarlayın
Bütün elementləri LinkedHashMap-dən açar dəyər cütləri şəklində almaq üçün entrySet()
metod. Map.Entry nümunəsini istifadə edərək, əsas məlumatları fərdi olaraq əldə edə bilərik getKey()
və istifadə edərək dəyər getValue()
metodu.
İstifadə edərək bütün əsas məlumatları xəritədən götürə bilərik keySet()
metodu və bütün dəyərləri values()
metodu.
import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; public class IterateLinkedHashMap { public static void main(String[] args) { LinkedHashMap<Integer,String> lh = new LinkedHashMap<Integer,String>(); lh.put(1, "Aarthi"); lh.put(2, "Bharathi"); lh.put(3, "Chandini"); System.out.println("Iterate using EntrySet method: "); for(Map.Entry<Integer, String> m : lh.entrySet()) { System.out.println(m.getKey() + " : " + m.getValue()); } System.out.println("Iterate using the KeySet method: "); for(Integer s : lh.keySet()) { System.out.println(s); } System.out.println("Iterate using the Collection values method: "); for(String val : lh.values()) { System.out.println(val); } } }
Iterate using EntrySet method: 1 : Aarthi 2 : Bharathi 3 : Chandini Iterate using the KeySet method: 1 2 3 Iterate using the Collection values method: Aarthi Bharathi Chandini
Nümunə: Düyməni əsas götürərək dəyərləri əldə edin
Aşağıda istifadə edərək müəyyən bir əsas dəyəri götürmək nümunəsidir get()
metod. Xüsusiyyətli bir düyməni istifadə edərək mövcud deyilsə, standart dəyəri yazdırırıq getOrDefault()
metodu.
Xəritədə müəyyən bir açar və ya dəyəri olub olmadığını yoxlaya bilərik containsKey()
or containsValue()
metodu.
import java.util.LinkedHashMap; public class RetrieveData { public static void main(String[] args) { LinkedHashMap<Integer,String> lh = new LinkedHashMap<Integer,String>(); lh.put(1, "Aarthi"); lh.put(2, "Bharathi"); lh.put(3, "Chandini"); System.out.println("Value of Key 2: " + lh.get(2)); System.out.println("Value of Key 3 if present: " + lh.getOrDefault(3, "Test")); System.out.println("Value of key when not present: " + lh.getOrDefault(4, "Test")); System.out.println("Does key 1 exist: " + lh.containsKey(1)); System.out.println("Does value exist: " + lh.containsValue("Chandini")); System.out.println("Doe key 4 exist: " + lh.containsKey(4)); System.out.println("Does value exist: " + lh.containsValue("Test")); } }
Value of Key 2: Bharathi Value of Key 3 if present: Chandini Value of key when not present: Test Does key 1 exist: true Does value exist: true Doe key 4 exist: false Does value exist: false