Java TreeMap


ULASHISH

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);
  }
}

O‘zingiz sinab ko‘ring »

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:

Misol

capitalCities.get("England");

O‘zingiz sinab ko‘ring »


Elementlarni o‘chirish

Kalit/qiymat juftligini kalit bo‘yicha o‘chirish uchun remove() metodidan foydalaning:

Misol

capitalCities.remove("England");

O‘zingiz sinab ko‘ring »

Barcha elementlarni o‘chirish uchun clear() metodidan foydalaning:

Misol

capitalCities.clear();

O‘zingiz sinab ko‘ring »


TreeMap o‘lchami

Kalit/qiymat juftliklari sonini hisoblash uchun size() metodidan foydalaning:

Misol

capitalCities.size();

O‘zingiz sinab ko‘ring »

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);
}

O‘zingiz sinab ko‘ring »

Misol

// Print values
for (String i : capitalCities.values()) {
  System.out.println(i);
}

O‘zingiz sinab ko‘ring »

Misol

// Print keys and values
for (String i : capitalCities.keySet()) {
  System.out.println("key: " + i + " value: " + capitalCities.get(i));
}

O‘zingiz sinab ko‘ring »


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>();

O‘zingiz sinab ko‘ring »


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<>();

O‘zingiz sinab ko‘ring »

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!