Java TreeMap
Java TreeMap
TreeMap — kalit/qiymat juftliklarini kalit bo‘yicha saralangan tartibda saqlaydigan kolleksiya.
U java.util paketiga kiradi va Map interfeysini amalga oshiradi.
Maslahat: Tartibni saqlamaydigan HashMap sinfidan farqli o‘laroq, TreeMap o‘z kalitlarini saralangan holda saqlaydi.
TreeMap yaratish
String kalitlar va String qiymatlarni saqlaydigan TreeMap yarating:
Misol
import java.util.TreeMap; // Import the TreeMap class
TreeMap<String, String> capitalCities = new TreeMap<>();
Endi saralangan kalit/qiymat juftliklarini boshqarish uchun put(), get() va remove() kabi metodlardan foydalanishingiz mumkin.
Elementlar qo‘shish
Kalit/qiymat juftliklarini qo‘shish uchun put() metodidan foydalaning:
Misol
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
TreeMap<String, String> capitalCities = new TreeMap<>();
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: Kalitlar alifbo tartibida saralanadi (masalan, {Austria=Wien, England=London, India=New Dehli, Norway=Oslo, USA=Washington DC}).
Eslatma: "Norway" kabi takroriy elementlar faqat bir marta chiqadi.
Elementga murojaat qilish
Qiymatga murojaat qilish uchun get() metodini kalit bilan birga ishlating:
Elementlarni o‘chirish
Kalit/qiymat juftligini kalit bo‘yicha o‘chirish uchun remove() metodidan foydalaning:
Barcha elementlarni o‘chirish uchun clear() metodidan foydalaning:
TreeMap o‘lchami
Kalit/qiymat juftliklari sonini hisoblash 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.
TreeMap bo‘ylab sikl
TreeMap elementlarini for-each sikli yordamida aylanib chiqing.
Eslatma: Faqat kalitlar kerak bo‘lsa, keySet() metodidan, faqat qiymatlar kerak bo‘lsa, values() metodidan foydalaning:
Misol
// Print keys
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
Misol
// Print values
for (String i : capitalCities.values()) {
System.out.println(i);
}
Misol
// Print keys and values
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
TreeMap va HashMap
| Xususiyat | HashMap |
TreeMap |
|---|---|---|
| Tartib | Tartib kafolatlanmaydi | Kalitlar bo‘yicha saralangan |
| Null kalitlar | Bitta null kalitga ruxsat beradi | Null kalitlarga ruxsat bermaydi |
| Unumdorlik | Tezroq (saralash yo‘q) | Sekinroq (saralangan tartibni saqlaydi) |
Maslahat: Unumdorlik muhim bo‘lsa, HashMap sinfidan, saralangan kalitlar kerak bo‘lganda esa TreeMap sinfidan foydalaning.
var kalit so‘zi
Java 10 dan boshlab tipni ikki marta yozmasdan TreeMap 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
TreeMap<String, String> capitalCities = new TreeMap<String, String>();
// With var
var capitalCities = new TreeMap<String, String>();
Map interfeysi
Eslatma: Ba’zan Java kodida Map va TreeMap’ni birga ko‘rasiz, masalan:
import java.util.Map;
import java.util.TreeMap;
Map<String, String> capitalCities = new TreeMap<>();
Bu shuni anglatadiki, o‘zgaruvchi (capitalCities) Map (interfeys) sifatida e’lon qilingan, lekin u TreeMap obyektini (aslida ishlatiladigan Map’ni) saqlaydi. TreeMap 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!
