To’plamlar (Sets) — takrorlanmas qiymatlarni saqlaydigan to’plam. List dan farqli o’laroq, Set har bir qiymatni faqat bir marta saqlaydi va tartibga ega emas. U takrorlarni tozalash va tez tekshirish uchun ideal.
Set — takrorlanmaydigan, tartibsiz elementlar to’plami. U jingalak qavs
{}ichida yoziladi va matematikadagi to’plam tushunchasiga mos keladi.
Set yaratish va takror
Set’ning eng ko’zga tashlanadigan xususiyati — takrorlarni avtomatik olib tashlashi:
void main() {
var sonlar = {1, 2, 2, 3, 3, 3};
print(sonlar);
print(sonlar.length);
}
{1, 2, 3}
Takrorlar yo’qoldi — Set har qiymatni bir marta saqladi. Bu noyob qiymatlar ro’yxatini olishning eng oson usuli.
Element qo’shish va tekshirish
Set ga add bilan qo’shiladi, contains bilan tez tekshiriladi:
void main() {
var tillar = {"dart", "python"};
tillar.add("javascript");
tillar.add("dart"); // takror — qo'shilmaydi
print(tillar);
print(tillar.contains("python"));
}
{dart, python, javascript}
true
Ikkinchi "dart" qo’shilmadi, chunki Set takrorga ruxsat bermaydi. contains esa element bor-yo’qligini juda tez tekshiradi.
To’plam amallari
Set matematik to’plam amallarini qo’llab-quvvatlaydi. Ularni jadvalda ko’ramiz:
| Amal | Metod | Ma’nosi |
|---|---|---|
| Birlashma | union() |
ikkalasidagi barcha |
| Kesishma | intersection() |
ikkalasida ham bor |
| Ayirma | difference() |
birinchida bor, ikkinchida yo’q |
Amalda:
void main() {
var a = {1, 2, 3, 4};
var b = {3, 4, 5, 6};
print(a.union(b));
print(a.intersection(b));
print(a.difference(b));
}
{1, 2, 3, 4, 5, 6}
{3, 4}
{1, 2}
union — birlashma, intersection — kesishma, difference — ayirma. Bu amallar, masalan, ikki foydalanuvchining umumiy qiziqishlarini topishda foydali.
List’dan Set’ga
Takroriy elementli ro’yxatni tozalashning eng oson usuli — uni Set ga aylantirish:
void main() {
var royxat = ["olma", "anor", "olma", "uzum"];
var noyob = royxat.toSet();
print(noyob);
}
{olma, anor, uzum}
toSet() takroriy “olma” ni bir marta qoldirdi. Bu ma’lumotni tozalashning ixcham usuli.
Xulosa
Bu bo’limda Set — takrorlanmas to’plam, add/contains, to’plam amallari (union, intersection, difference) va List dan Set ga o’tkazishni ko’rib chiqdik. Set noyob qiymatlar uchun ideal. Keyingi darsda lug’atlar (Maps) ga o’tamiz.