Published on

Swiftda Sets

Authors

Set — takrorlanmaydigan, noyob elementlar to‘plamidir. Ya’ni set ichida bir xil element ikki marta bo‘la olmaydi. Masalan,

Talabalar ID raqamlarini saqlamoqchi bo‘lsak, ularning ID raqamlari takrorlanmasligi kerak. Shu sababli setdan foydalanish mumkin.

array

Set yaratish

Set yaratish misoli:

// integer turidagi set yaratish
var studentID : Set = [112, 114, 116, 118, 115]

print("Student ID: \(studentID)")

Natija:

Student ID: [112, 114, 115, 118, 116]

Bu yerda:

var studentID : Set = [112, 114, 115, 118, 116]

Set kalit so‘zi studentID o‘zgaruvchisi set ekanligini bildiradi. Elementlar integer bo‘lgani uchun Set<Int> tipiga mansub.

Quyidagicha turini aniq ko‘rsatish ham mumkin:

var studentID : Set<Int> = [112, 114, 115, 116, 118]

Set tartibga ega emas, shuning uchun elementlar ekranga tartibsiz chiqishi mumkin.

Setga element qo‘shish

insert() metodi setga yangi element qo‘shadi.

var numbers: Set = [21, 34, 54, 12]

print("Initial Set: \(numbers)")

numbers.insert(32)

print("Updated Set: \(numbers)")

Natija:

Initial Set: [54, 21, 34, 12]
Updated Set: [54, 21, 34, 12, 32]

insert(32) — setga 32 elementini qo‘shadi.

Setdan element o‘chirish

remove() — berilgan elementni o‘chiradi.

var languages: Set = ["Swift", "Java", "Python"]

print("Initial Set: \(languages)")

let removedValue = languages.remove("Java")

print("Set after remove(): \(languages)")

Natija:

Initial Set: ["Python", "Java", "Swift"]
Set after remove(): ["Python", "Swift"]

Boshqa metodlar:

  • removeFirst() — setdagi birinchi elementni o‘chiradi
  • removeAll() — setdagi barcha elementlarni o‘chiradi

Setning foydali metodlari

Oddiy ro‘yxat ko‘rinishida:

  • sorted() — elementlarni tartiblaydi
  • forEach() — har bir element uchun amal bajaradi
  • contains() — element mavjudligini tekshiradi
  • randomElement() — tasodifiy element qaytaradi
  • firstIndex() — element indeksini qaytaradi

Set elementlarini aylanish (Iteratsiya)

let fruits: Set = ["Apple", "Peach", "Mango"]

print("Fruits:")

for fruit in fruits {
  print(fruit)
}

Natija:

Fruits:
Peach
Mango
Apple

Setdagi elementlar sonini aniqlash

let evenNumbers = [2,4,6,8]
print("Set: \(evenNumbers)")

print("Total Elements: \(evenNumbers.count)")

Natija:

Set: [2, 6, 8, 4]
Total Elements: 4

Set amallari

Swift setlar ustida matematik amallarni bajarish uchun maxsus metodlar taqdim etadi: union, intersection, subtracting, symmetricDifference.

1. Ikki Setning birlashmasi (Union)

A ⋃ B — ikkala setdagi barcha elementlar.

array
let setA: Set = [1, 3, 5]
let setB: Set = [0, 2, 4]

print("Union: ", setA.union(setB))

Natija:

Union: [0, 5, 2, 4, 1, 3]

2. Ikki Setning kesishmasi (Intersection)

A ⋂ B — ikkala setdagi umumiy elementlar. set
let setA: Set = [1, 3, 5]
let setB: Set = [1, 2, 3]

print("Intersection: ", setA.intersection(setB))

Natija:

Intersection: [3, 1]

3. Ikki Setning ayirmasi (Difference)

A – B — A setdagi, B setda yo‘q elementlar. set
let setA: Set = [2, 3, 5]
let setB: Set = [1, 2, 6]

print("Subtraction: ", setA.subtracting(setB))

Natija:

Subtraction: [3, 5]

4. Simmetrik ayirma (Symmetric Difference)

A △ B — umumiy bo‘lmagan elementlar. set
let setA: Set = [2, 3, 5]
let setB: Set = [1, 2, 6]

print("Symmetric Difference: ", setA.symmetricDifference(setB))

Natija:

Symmetric Difference: [1, 6, 3, 5]

5. Setning Subset ekanligini tekshirish

Set B, set A ning subseti bo‘ladi, agar B ning barcha elementlari A ichida mavjud bo‘lsa. set
let setA: Set = [1, 2, 3, 5, 4]
let setB: Set = [1, 2]

print("Subset: ", setB.isSubset(of: setA))

Natija:

Subset: true

Ikki Setning tengligini tekshirish

let setA: Set = [1, 3, 5]
let setB: Set = [3, 5, 1]

if setA == setB {
  print("Set A and Set B are equal")
} else {
  print("Set A and Set B are different")
}

Natija:

Set A and Set B are equal

Setlar tartibga ega bo‘lmagani uchun tarkibi bir xil bo‘lsa — ular teng hisoblanadi.

Bo‘sh Set yaratish

var emptySet = Set<Int>()
print("Set:", emptySet)

Natija:

Set: []

Bo‘sh set yaratishda <Int>() — set faqat integer qiymatlar saqlashini bildiradi.