Java TreeSet


ULASHISH

Java TreeSet

TreeSet — noyob elementlarni saralangan tartibda saqlaydigan kolleksiya.

U java.util paketiga kiradi va Set interfeysini amalga oshiradi.

Maslahat: Elementlari hech qanday tartibga ega bo‘lmagan HashSet sinfidan farqli o‘laroq, TreeSet o‘z elementlarini avtomatik ravishda saralangan holda saqlaydi.


TreeSet yaratish

Misol

Stringlarni saqlaydigan cars nomli TreeSet obyektini yarating:

import java.util.TreeSet; // Import the TreeSet class

TreeSet<String> cars = new TreeSet<>();

Endi saralangan elementlar to‘plamingizni boshqarish uchun add(), contains() va remove() kabi metodlardan foydalanishingiz mumkin.


Element qo‘shish

TreeSet’ga element qo‘shish uchun add() metodidan foydalaning:

Misol

import java.util.TreeSet;

public class Main {
  public static void main(String[] args) {
    TreeSet<String> cars = new TreeSet<>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("BMW");  // Duplicate
    cars.add("Mazda");

    System.out.println(cars);
  }
}

O‘zingiz sinab ko‘ring »

Natija: Elementlar avtomatik ravishda saralanadi (masalan, [BMW, Ford, Mazda, Volvo]).

Eslatma: "BMW" kabi takroriy elementlar faqat bir marta chiqadi.



Element mavjudligini tekshirish

Element mavjudligini tekshirish uchun contains() metodidan foydalaning:

Misol

cars.contains("Mazda");

O‘zingiz sinab ko‘ring »


Elementni o‘chirish

Elementni o‘chirish uchun remove() metodidan foydalaning:

Misol

cars.remove("Volvo");

O‘zingiz sinab ko‘ring »


Barcha elementlarni o‘chirish

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

Misol

cars.clear();

O‘zingiz sinab ko‘ring »


TreeSet o‘lchami

Set’da nechta noyob element borligini sanash uchun size()’dan foydalaning:

Misol

cars.size();

O‘zingiz sinab ko‘ring »

Eslatma: Takroriy qiymatlar sanalmaydi — o‘lchamga faqat noyob elementlar kiradi.


TreeSet bo‘ylab sikl

TreeSet elementlarini for-each sikli yordamida aylanib chiqing:

Misol

TreeSet<String> cars = new TreeSet<>();
// add elements...

for (String i : cars) {
  System.out.println(i);
}

O‘zingiz sinab ko‘ring »


TreeSet’ni sonlar bilan ishlatish

TreeSet sonlar bilan ham ishlaydi va ularni kichigidan kattasiga qarab saralaydi:

Misol

import java.util.TreeSet;

public class Main {
  public static void main(String[] args) {
    TreeSet<Integer> numbers = new TreeSet<>();
    numbers.add(40);
    numbers.add(10);
    numbers.add(30);
    numbers.add(20);

    for (int n : numbers) {
      System.out.println(n);
    }
  }
}

O‘zingiz sinab ko‘ring »

Natija: Sonlar saralangan tartibda chiqariladi (10, 20, 30, 40).


HashSet va TreeSet

Xususiyat HashSet TreeSet
Tartib Tartib kafolatlanmaydi Saralangan (tabiiy tartibda)
Takroriy elementlar Ruxsat etilmaydi Ruxsat etilmaydi
Unumdorlik Tezroq (saralash yo‘q) Sekinroq (saralash tufayli)

Maslahat: Tezlik muhim bo‘lsa, HashSet sinfidan, saralangan elementlar kerak bo‘lsa, TreeSet sinfidan foydalaning.


var kalit so‘zi

Java 10 dan boshlab tipni ikki marta yozmasdan TreeSet 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
TreeSet<String> cars = new TreeSet<String>();

// With var
var cars = new TreeSet<String>();

O‘zingiz sinab ko‘ring »


Set interfeysi

Eslatma: Ba’zan Java kodida Set va TreeSet’ni birga ko‘rasiz, masalan:

import java.util.Set;
import java.util.TreeSet;

Set<String> cars = new TreeSet<>();

O‘zingiz sinab ko‘ring »

Bu shuni anglatadiki, o‘zgaruvchi (cars) Set (interfeys) sifatida e’lon qilingan, lekin u TreeSet obyektini (aslida ishlatiladigan Set’ni) saqlaydi. TreeSet sinfi Set 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!