Swift’te Set Kullanımı

Merhabalar, bugün sizlerle Swift dilinde Set yapısının kullanımından bahsedeceğim. Hazırsanız dersimize geçebiliriz.


Swift Sets Nedir?

  • Set, Collection tiplerinden biridir.
  • Set yapısı aynı türden verilerin saklamasını sağlar.
  • Array yapısında aynı değere sahip birden fazla içerik bulunurken, Set yapısında aynı değerden sadece bir defa olması gerekir.
  • Array’ler sıralı şekilde kullanılırken, Set yapısında sıralama olayı default şekilde bulunmamaktadır. İsteğe bağlı Set içerisindeki elemanları sıralayabilirsiniz.

Set yapısını öğrendikten sonra şimdide kodlama kısmına geçelim 🙂


Swift Sets Tanımlama

var helloWorld = Set<String>()

var türünde helloWorld atında String türünde bir boş Set tanımladık.

var helloWorld : Set = ["Hello World"]

Dizilerde olduğu gibi türünü belirtmeden Set yapısında da değer ataması yapabiliyoruz. Türünü belirtirmek ya da belirtmemek o size kalmış bir durum IDE derleme sırasında türünü anlayarak işlemlerini yapıyor.


Swift Sets Değer Ekleme

Boş bir Set yapısına insert metodunu kullanarak değer ekleyebiliriz.

helloWorld.insert("Hello, Halil")
helloWorld.insert("How are you?")

Set yapısına String türde iki değer ekledik.


Swift Sets Değer Silme

Eklemeler yaptığımız Set yapısından herhangi bir eleman silmek istediğimiz zaman remove metodunu kullanıyoruz.

helloWorld.remove("How are you?")

How are you? içeriğine sahip elemanı silmiş olduk.


Swift Sets İçerik Kontrol Etme

Sets yapısında bir değişkenimizin içerisinde herhangi bir değer araması yapılabilmektedir. contains metodunu ile Sets türündeki değişkenlerin içerisinde belirli bir değeri arayabiliriz.

helloWorld.contains("How are you?")

Bu şekilde kullanıldığında sonuç olarak bizlere true ya da false değerlerini döndürür.

How are you? içeriğini Set yapısından sildiğimiz için false değerini döndürdü.


Swift Sets Değerlerin Kontrol Edilmesi

Set yapılarında değerleri kontrol etmek istediğimiz zaman isEmpty metodunu kullanmaktayız.

helloWorld.isEmpty

Set yapısında eleman bulunduğu için değer olarak false olarak bizlere geri döndü.


Swift Sets Değerlerin Ekranda Gösterilmesi

Set yapısında bulunan tüm değerleri for yardımıyla ekranda görüntüleyebiliriz.

for sets in helloWorld{
    
    print("\(sets)")
}
Hello, Halil
Thanks. Me too
I'm fine. And you?

Set içerisindeki değerler yukarıdaki gibi ekranda görüntülendi.


Swift Sets Eleman Sayısının Bulunması

Set yapısında kaç adet eleman var onu count metodu yardımıyla öğrenebiliriz.

helloWorld.count

Swift Sets Sorted ile Sıralama

Set sıralı bir şekilde yapıları sıralama işlemini desteklememektedir. Sorted metodunu kullanarak alfabetik sıralama yapabiliriz.

for sets in helloWorld.sorted(){
    
    print("\(sets)")
}
Hello, Halil
I'm fine. And you?
Thanks. Me too

Alfabetik sıralamaya göre ekrana içerikler bastırıldı.

Swift Sets Temel İşlemler

Set yapısındaki temel işlemler aynı Matematik’teki kümelerde yapılan işlemlere benzemektedir.

  • intersection – kesişim
  • symmetricDifference – simetrik farkı
  • union – birleşim
  • subtracting – fark

Bu dört işlemi örnek üzerinde anlatırsam daha efektif olacağını düşünüyorum.

let oddDigits: Set = [1, 3, 5, 7, 9]
let evenDigits: Set = [0, 2, 4, 6, 8]

İki farklı Set tanımladık. Tek ve çift sayıların bulunduğu iki farklı Set yapısıyla işlemler yapacağız.

print(oddDigits.intersection(evenDigits))

İki set arasında intersection işlemini yaptık. Herhangi bir çıktı vermedi. Ortak elemanı olmadığı için kesişim kümesi boştur.

print(oddDigits.symmetricDifference(evenDigits))

symmetricDifference kullanarak ortak kümeleri hariç birleştirme işlemini yaptık. Ekranda sıralı görebilmek için sorted metodunu kullandık.

print(oddDigits.symmetricDifference(evenDigits).sorted())
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

subtracting kullanarak tek sayılar kümesini görüntülebileceğiz.

print(oddDigits.subtracting(evenDigits))
[1, 3, 7, 9, 5]

union kullanarak tüm elemanları birleştirme işlemini yaptık.

print(oddDigits.union(evenDigits))
[1, 2, 8, 3, 7, 9, 5, 0, 6, 4]

Swift Set Membership and Equality

Küme işlemlerine farklı bir başlık altında devam ediyoruz 🙂

  • isSubset : Bir kümedeki tüm değerlerin bir başka kümede olup olmağını öğrenmek için kullanılır.
  • isSuperset : Bir kümenin diğer kümeyi kapsayıp kapsamadığını öğrenmek için kullanılır.
  • isDisjoint : İki kümenin ortak değerlere sahip olup olmadığını öğrenmek için kullanılır.

Bu işlemleri yapabilmek için üç farklı Set yapısı tanımlıyoruz.

let houseAnimals: Set = ["🐶", "🐱"]
let farmAnimals: Set = ["🐮", "🐔", "🐑", "🐶", "🐱"]
let cityAnimals: Set = ["🐦", "🐭"]
houseAnimals.isSubset(of: farmAnimals)

Ev hayvanları, Çiflik hayvanlarının bir alt kümesi olup olmadığına baktık. Derleyiciden true değerini aldık.

farmAnimals.isSuperset(of: houseAnimals)

Çiftlik hayvanlarının ev hayvanlarını kapsayıp, kapsamadığını öğrendik. Kapsadığı için true değerini aldık.

cityAnimals.isDisjoint(with: houseAnimals)

İki kümenin birbirlerinden farklı değerlerinin olup olmadığını kontrol ettik. Ortak elemanları olmadığı için true değerini geri döndürdü.

Evet Arkadaşlar, bir yazımızın daha sonu geldik. Gelecek yazılarda görüşmek üzere 🙂

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir