Java LinkedHashMap
Java LinkedHashMap
LinkedHashMap kalitlar va qiymatlarni saqlaydi hamda ularni siz qo‘shgan tartibda saqlab turadi.
U java.util paketiga kiradi va Map interfeysini amalga oshiradi.
Maslahat: Elementlarni aylanib chiqish tartibi oldindan ma’lum bo‘lishini (qo‘shilish tartibi) istasangiz, LinkedHashMap sinfidan foydalaning.
LinkedHashMap yaratish
String kalitlar va String qiymatlarni saqlaydigan capitalCities nomli LinkedHashMap obyektini yarating:
Misol
import java.util.LinkedHashMap; // Import the LinkedHashMap class
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<>();
Endi kalit/qiymat juftliklarini qo‘shish uchun put(), qiymatni kalit bo‘yicha olish uchun get() va yozuvni o‘chirish uchun remove() kabi metodlardan foydalanishingiz mumkin — bunda qo‘shilish tartibi doimo saqlanib qoladi.
Elementlar qo‘shish
LinkedHashMap obyektiga elementlar qo‘shish uchun put() metodidan foydalaning:
Misol
// Import the LinkedHashMap class
import java.util.LinkedHashMap;
public class Main {
public static void main(String[] args) {
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<>();
capitalCities.put("England", "London");
capitalCities.put("India", "New Dehli");
capitalCities.put("Austria", "Wien");
capitalCities.put("Norway", "Oslo");
capitalCities.put("Norway", "Oslo"); // Duplicate
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
Natija: Elementlar qo‘shilgan tartibda chiqadi (masalan, {England=London, India=New Dehli, Austria=Wien, Norway=Oslo, USA=Washington DC}).
Eslatma: "Norway" kabi takroriy elementlar e’tiborga olinmaydi.
Elementga murojaat qilish
Kalitga bog‘langan qiymatni olish uchun get() metodini kalit bilan birga ishlating:
Elementni o‘chirish
Elementni kalit bo‘yicha o‘chirish uchun remove() metodidan foydalaning:
Barcha elementlarni o‘chirish uchun clear() metodidan foydalaning:
LinkedHashMap o‘lchami
Map’da nechta kalit/qiymat juftligi borligini tekshirish uchun size() metodidan foydalaning:
Eslatma: O‘lcham faqat noyob kalitlarni hisobga oladi. Agar kalit bir necha marta qo‘shilsa, faqat eng oxirgi qiymat saqlanib qoladi.
LinkedHashMap bo‘ylab sikl
LinkedHashMap bo‘ylab for-each sikli yordamida aylanib chiqishingiz mumkin. Quyidagilardan foydalaning:
keySet()— barcha kalitlarni olish uchunvalues()— barcha qiymatlarni olish uchun
Misol
// Print keys
for (String key : capitalCities.keySet()) {
System.out.println(key);
}
Misol
// Print values
for (String value : capitalCities.values()) {
System.out.println(value);
}
Misol
// Print keys and values
for (String key : capitalCities.keySet()) {
System.out.println("Key: " + key + ", Value: " + capitalCities.get(key));
}
HashMap va LinkedHashMap
| Xususiyat | HashMap |
LinkedHashMap |
|---|---|---|
| Tartib | Tartib kafolatlanmaydi | Qo‘shilish tartibi saqlanadi |
| Unumdorlik | Tasodifiy murojaatda tezroq | Tartibni saqlash tufayli biroz sekinroq |
| Takroriy elementlar | Kalitlar noyob bo‘lishi shart | Kalitlar noyob bo‘lishi shart |
Maslahat: Map yozuvlar qo‘shilgan tartibni eslab qolishini istasangiz, LinkedHashMap sinfidan foydalaning.
var kalit so‘zi
Java 10 dan boshlab tipni ikki marta yozmasdan LinkedHashMap o‘zgaruvchisini e’lon qilish uchun var kalit so‘zidan foydalanishingiz mumkin. Kompilyator tipni siz beradigan qiymatdan aniqlaydi.
Bu kodni qisqartiradi, ammo ko‘plab dasturchilar aniqlik uchun baribir to‘liq tipdan foydalanadi. var Java tilida to‘g‘ri sintaksis bo‘lgani uchun uni boshqa kodlarda uchratishingiz mumkin, shuning uchun uning mavjudligini bilib qo‘ygan ma’qul:
Misol
// Without var
LinkedHashMap<String, String> capitalCities = new LinkedHashMap<String, String>();
// With var
var capitalCities = new LinkedHashMap<String, String>();
Map interfeysi
Eslatma: Ba’zan Java kodida Map va LinkedHashMap’ni birga ko‘rasiz, masalan:
import java.util.Map;
import java.util.LinkedHashMap;
Map<String, String> capitalCities = new LinkedHashMap<>();
Bu shuni anglatadiki, o‘zgaruvchi (capitalCities) Map (interfeys) sifatida e’lon qilingan, lekin u LinkedHashMap obyektini (aslida ishlatiladigan Map’ni) saqlaydi. LinkedHashMap sinfi Map interfeysini amalga oshirgani (implements) uchun bunday qilish mumkin.
U xuddi shunday ishlaydi, ammo ba’zi dasturchilar bu uslubni afzal ko‘radi, chunki u keyinchalik tipni o‘zgartirish uchun ko‘proq moslashuvchanlik beradi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
