Map va Set — List 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.
Set — takrorlanmaydigan 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.