Darsliklar Dart To’plamlar (Sets)

Dart Dart To’plamlar (Sets)

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.

Settakrorlanmaydigan, 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.