Kotlin Set Kullanımı ve Fonksiyonları

Java Kotlin Eğitimi

Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız Kotlin Dersleri yazı serimizde bu dersimizde Kotlin Set kullanımını ve methodlarını anlatacağız.

Önceki yazılarımızda Arraylist kullanımından bahsetmiştik.  O dersimizi okumadıysanız öncelikle o dersimizi okumanızı tavsiye ederim. Derse gitmek için tıklayınız.

Java Kotlin Eğitimi

Kotlin Set

Koleksiyon oluşturmak için kullanabileceğimiz başka bir sınıf ise Set sınıfıdır. Set sınıfı ile oluşturulan bir koleksiyonda tekrarlanan öğeler bulunmaz. Map, List ve Arrayler de aynı eleman programda defalarca kullanılabilir veya birden fazla bulunabilir. Fakat Set sınıfında böyle bir durum söz konusu değildir. Set sınıfının içindeki öğeler bir dizi biçiminde değil, bir torbaya doldurulmuş biçimdedir şeklinde düşünülebilirler. Set kavramı Matematikteki Kümeler kavramından gelmektedir.

Set sınıfı iki temel üzerine inşa edilmiştir :

  • immutable : setOf() ile oluşturulan yapılarda sadece okuma işlemi yapılır.
  • mutable : mutableSetOf() ile oluşturulan yapılarda ise üzerine ekleme, güncelleme ve silme işlemleri yapılabilir.

İlerleyen derslerde bu metodlarla ilgili detaylı bir blog yazısı yayınlayacağım. Şimdilik temel olarak bu bilgiler yeterlidir.

Set tanımlamak

 

Set tanımlanırken iki tip yöntem kullanılır. Örnekte de görüldüğü gibi ya Set sınıfının değeri verilmeden bütün değerlerden oluşan bir Set oluşturulur ya da oluşturacağımız Set sınıfını yalnızca String tipinde olsun ya da yalnızca int tipinde olsun şeklinde sınırlandırabiliriz.

 

Set sınıfına item eklemek

Set sınıfına bir item eklemek için add() komutu kullanılır.

 

Örnekte Double türünde boş bir set sınıfı oluşturuldu. Oluşturulan bu set sınıfına add() metodu ile çeşitli değerler eklendi. Biz oluşturduğumuz Set sınıfına başka bir veri tipinde bir değer eklemek istediğimizde bizlere hata verecektir. Çünkü biz Set sınıfımızı Double türünde kısıtlamış olduk.

 

 

Başka bir örnekte ise String türünde bir Set sınıfı oluşturuldu ve içine elemanlar eklendi. Array List kullanımında olduğu gibi hangi indexs te olacak onu belirtip ve istenilen değer yazılmasına rağmen hata ile karşılaşıldı. Set sınıfında bu tip bir kullanım yok sadece eklenen değerler en sona eklenir. Veri yapılarında kullanılan Kuyruk yapısına benzemektedir.

 

Set sınıfından bir item almak

Set sınıfında bir item değerini alabilmek için elementAt() metodu kullanılır. Array liste kullanıldığı gibi get() metodu ile sınıfın itemlarına erişemiyoruz.

 

Öğrenmiş olduğumuz bu bilgiyi pekiştirmek adına bir örnek yapalım. Örneğimize başlarken öncelikle int türünde bir set sınıfı oluşturuyoruz. Oluşturulan bu Set sınıfına add() metoduyla elemanlar ekliyoruz. Eklemiş olduğumuz elemanların indexslerini öğrenmek içinse elementAt() metodu kullandık. 2 adet index değerini öğrenmek istiyoruz. Onları daha okunur halde olması için var değişkeni kullanılarak yeni değişkenlere atanıyor. Atamış olduğumuz değerleri println() metodu yardımıyla ekranda gösteriyoruz.

 

Set sınıfından bir item silmek

Set sınıfından bir item silmek için remove() metodu kullanılır.

 

Daha önceden eklemeler ve düzenlemeler yapmış olduğumuz Set sınıfının 58 değerine sahip index’ini remove komutu ile birlikte sildik. Silmiş olduğumuz değeri ve diğer set değerlerini görebilmek için for döngüsü yardımıyla ekranda set değerleri tek tek yazdırıldı. Aşağıdaki çıktıyı incelerseniz 58 değerine sahip bir eleman göremeyeceksiniz.

 

 

Set sınıfının önemli method ve değişkenleri

size : Set sınıfının boyutunu öğrenmemiz için kullanılan bir değişkendir.

 

Örnekte String türünde bir Set sınıfı oluşturup içine değerler atadık. Atanan değerlerin ne kadar uzunlukta olduğunu öğrenmek için size değişkenini kullandık. Son olarak println() metodu yardımıyla ekranda değer gösterildi.

 

contains() metodu

Set sınıfının içerisinde bir eleman var mı yok mu onu kontrol edebilmek için kullanılan bir metoddur.

 

Set sınıfımızın içerisinde “Taha” değerine sahip bir eleman olmadığı için false değeri dönüyor. Sınıfımızda “Halil” değerine sahip bir eleman olduğu için true değeri döndürülüyor. Bu çok fazla elemana sahip bir Set sınıfında acaba ben şu değeri kullandım mı diye şüpheye düştüğünüzde bu şüphenin giderilmesi ve sonucun gözükmesi için kullanılan harika bir metoddur.

 

isEmpty() metodu

Set sınıfında eleman var mı yok mu diye kontrol etmeye yarayan bir metoddur. Set sınıfında eleman yoksa true değeri döner eğer elemana sahip ise false değeri döner.

 

Daha önceden kullanmış olduğumuz Set sınıfının içi dolu mu boş mu diye kontrol ettik. İçerisinde elemanlar bulunduğu için false değerini döndürdü. Birde true değerini görebilmek için boş bir Set sınıfı tanımlandı. Tanımlanan sınıfa değer eklenmeden bunun boş mu dolu mu olduğu kontrol edildi ve sonuç boş olduğu için true değerini döndürdü.

 

clear() metodu

Set sınıfın içinde bulunan değerlerin hepsini temizler. Boş bir dizi haline getirir.

 

Örneğimizde 3 elemanlı bir Set sınıfını clear() metodu yardımıyla sıfırladık. println() metodu ile ekranda bu Set sınıfını gösterdik sonuç olarak bize boş bir array döndürdü.

 

indexOf() metodu

Set sınıfında aradığımız değerin kaçıncı indekste olduğunu öğrenmek için kullanılır. Aradığımız değer Set sınıfında yok ise -1 değeri döndürülür.

 

Set sınıfında “Halil” değeri arandı ve bulundu. İndex olarak 3 değerini verdi. “Taha” değeri Set sınıfına ait bir değer olmadığı için -1 değeri döndürüldü.

 

equals() metodu

İki ya da daha fazla Set sınıfının elemanlarının karşılaştırılmasında kullanılan bir metoddur.

 

String türünde iki Set sınıfı oluşturuldu. Oluşturulan bu Set sınıflarına aynı değerler eklendi. equals() metodu ile bu elemanlar karşılaştırıldı. Elemanlar birbirine eşit olduğu için true değeri döndürdü.

Bu dersimde anlatmak istediklerim bu kadar. Bir sonraki dersimde Map Kullanımını ve methodlarını anlatacağım.

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Kotlin Dersleri için tıklayınız.

 

 

Halil Özel

İstanbul Sabahattin Zaim Üniversitesi Bilgisayar Mühendisliği 3. sınıf öğrencisiyim. Üniversitede Java, C, C++ programlama dillerini öğrendim. Bu diller ile çeşitli uygulamalar geliştirdim. Kullanıcı arayüzü olarak Java'nın Swing API'si üzerinde çalışmalar yaptım. Python ve PHP dillerine giriş yaptım. Siber güvenlik alanına ilgiliyim. Android​ Uygulamalar geliştiriyorum. Kotlin ve Swift dillerini öğreniyorum. Linux işletim sistemini başlangıç seviyesinde biliyorum. Boş zamanlarımda kitap ve mesleki dergi okuyorum. Teknoloji ve bilişim bloglarını takip ediyorum. Medium da yazılım ile ilgili blog yazıları yazıyorum.
Kariyerime Android Developer ve iOS Developer olarak devam etmek istiyorum.

1 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?