Darsliklar Java Map va Set

Java Java Map va Set

Map va SetList dan farqli ikki muhim to’plam turi. Set takrorlanmas qiymatlarni saqlaydi, Map esa kalit-qiymat juftliklarini. Ular ma’lum vazifalar uchun List dan ancha samarali va aynan shu sabab professional kodda doimo uchraydi.

Settakrorlanmaydigan elementlar to’plami. Map — har bir qiymatga noyob kalit biriktirilgan juftliklar to’plami (lug’at).

Set — takrorlanmas to’plam

HashSet takroriy qiymatlarni avtomatik olib tashlaydi:

import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        HashSet<String> tillar = new HashSet<>();
        tillar.add("java");
        tillar.add("python");
        tillar.add("java");   // takror — qo'shilmaydi

        System.out.println(tillar);
        System.out.println("Soni: " + tillar.size());
        System.out.println(tillar.contains("python"));
    }
}
[java, python]
Soni: 2
true

Ikkinchi "java" qo’shilmadi, chunki Set takrorga ruxsat bermaydi. contains esa element bor-yo’qligini juda tez tekshiradi.

Map — kalit-qiymat to’plami

HashMap har bir qiymatga noyob kalit biriktiradi. Bu telefon kitobiga o’xshaydi: ism (kalit) orqali raqamni (qiymat) topasiz:

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> yoshlar = new HashMap<>();
        yoshlar.put("Farrux", 26);
        yoshlar.put("Master Sherkulov", 30);

        System.out.println(yoshlar.get("Farrux"));
        System.out.println(yoshlar.containsKey("Aziz"));
        System.out.println("Soni: " + yoshlar.size());
    }
}
26
false
Soni: 2

put — kalit-qiymat juftini qo’shadi, get — kalit orqali qiymatni oladi. HashMap<String, Integer> — kalit String, qiymat Integer ekanini bildiradi.

Map bo’ylab yurish

Map ni aylanib chiqish uchun uning kalitlari yoki juftliklari bo’yicha yuriladi:

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> narxlar = new HashMap<>();
        narxlar.put("telefon", 12000000);
        narxlar.put("noutbuk", 8500000);

        for (String kalit : narxlar.keySet()) {
            System.out.println(kalit + ": " + narxlar.get(kalit));
        }
    }
}
telefon: 12000000
noutbuk: 8500000

keySet() barcha kalitlarni beradi, so’ng har biri orqali qiymatni olamiz.

List, Set, Map: qaysi biri qachon?

Uch to’plamni jadvalda solishtiramiz:

To’plam Nima saqlaydi Takror Qachon
List tartiblangan elementlar ruxsat ketma-ketlik muhim bo’lsa
Set noyob elementlar yo’q takror kerak bo’lmasa
Map kalit-qiymat kalit noyob tez izlash kerak bo’lsa

Xulosa

Bu bo’limda Set bilan takrorlanmas to’plam, Map bilan kalit-qiymat juftliklari, ularni aylanib chiqish va uchala to’plam farqini ko’rib chiqdik. Set va Map — tez izlash va noyoblik uchun ideal. Keyingi darsda Stack va Queue ga o’tamiz.