Yukarı Çık

Kotlin Temelleri 2 (Koleksiyon Yapılar)

30 Mayıs 2022   0 Yorum

Diziler, aynı tipten ya da farklı türden çok sayıda veriyi tanımlamak için kullanılır. Dizilerin içindeki verilere erişmek için index numarasını kullanırız. Buradaki önemli husus dizilerin indexler sıfırdan başlar. Yani dizinin birinci elemanı 0. indexte bulunur. Bunu aşağıda yapacağımız örneklerde daha iyi anlayacağız. 

Kotlin'de dizi oluşturmak için farklı yollar vardır. Bunlar;

1) ArrayOf(): Diziler farklı tipte ya da aynı tipte birden fazla veriyi saklamamıza olanak sağlar. Veriler arasında gezinme, kolayca arama yapma ve sıralamak için diziler kullanılır. Diziler  boyutları sabittir ve içerisinde ekleme çıkarma işlemi yapılamaz. Sadece güncelleme işlemi yapılabilir. Karışık veri tipindeki verileri ArrayOf() fonksiyon ile tanımlayabiliriz. Diziye ulaşmak için index numarası kullandığımızı söylemiştik. Aşağıdaki kodda dizinin 0. indexini çağırıyoruz. Yani konsola Yasin yazdıracak. 

//içerisinde string, int, double bulunan karışık bir dizi oluşturduk.
var dizi = arrayOf("Yasin", 1,1.32)
println(dizi[0])

Veri yapımız sadece Int, double yada diğer veri tiplerinden (string hariç) oluşabilir. Bu durumda ArrayOf'un önüne veri tipinin adını yazarak, sadece o veri tipiyle ilgili dizi oluşturabiliriz.

var intTipiDizi= intArrayOf(1,5,10,20)     //int tipinde array oluşturduk
var boolTipiArray= booleanArrayOf(true,false,false)  //bool tipinde array oluşturduk
var doubleTipiArray=doubleArrayOf(1.0,3.4,2.8)  //double tipinde array oluşturduk

ArrayOf ile tanımladığımız dizimizin içinde değişiklik yapmak istersek; Set metodu ile değişiklik yapabiliriz. Set metodu bizden bir index ve yeni değer istiyor. Bizde aşağıdaki kodumuzda index olarak 0, yeni değer olarak da "Ertune" verisini verdik.  Diğer bir değişiklik yapma yöntemine baktığımızda da direk değişiklik yapacağımız indexe atama yapabiliyoruz.

Dizideki herhangi bir elemanı konsola yazdırmak için get metodunu kullanabiliriz ya da direk dizinin adı ve index numarasıyla erişebiliriz. Örnek kullanım aşağıdaki kodda vardır. 

var dizi = arrayOf("Yasin", 1,1.32)
dizi.set(0,"Ertune")
dizi[1] = "Yasin"
print("dizi: ${dizi[0]}")
print(dizi.get(1))

 

2) ArrayListOf(): Bu yapı List'ten türemiştir. Yani belli bir boyutu olsa dahi o boyuta ulaştığında kendisine yer açar. Bu yüzden List'lerin boyutu sabit değildir. Bu yüzden biz bir List oluştururken başta uzunluk vermeye gerek duymayız. ArrayListOf ile listemizi oluşturabiliriz. Listemizin içerisinde ekleme,çıkarma gibi işlemlerde yapabiliriz. Bunlar için Kotlin'de hazır fonksiyonlar vardır. 

var listKullanimi=ArrayList<Int>()
listKullanimi.add(1)
listKullanimi.add(5)
listKullanimi.remove(element:1)
listKullanimi.size

Yukarıda Int tipinde bir Array List oluşturduk. Bu List'imize add fonksiyonu ile 1 ve 5 sayısını atadık. Daha sonra remove fonksiyonu ile 1. elemanı sildik. Burada dikkat edilmesi gereken husus remove fonksiyonu bizden index istemiyor. element değeri istiyor. Buradaki element değerini bulmak için verileri 1 den başlayarak sayıyoruz ve o şekilde sileceğimiz element numarasını veriyoruz. Yani bunu element=index numarası+1 olarak da düşünebiliriz. List'lerin içinde kaç adet veri olduğunu görmek için size özelliğini kullanabiliyoruz. 

Karışık veri tiplerinden oluşan boş bir ArrayList oluşturmak için Any sınıfını kullanabiliriz. Örnek kullanım;

var bosArrayList = arrayListOf<Any>()
var stringArrayList = arrayListOf<String>()

 

3) SetOf(): Array ve List gibi içerisinde veriler barındıran yapılardır. Tek farkı içerisinde birden fazla veri varsa onları görmezden gelir. Aşağıda Int tipinde bir dizi tanımladık. Bu dizi içerisinde kaç adet eleman olduğunu yazdırmak istediğimizde bize 5 sonucu verecektir. Çünkü 6 ve 7 tekrar ediyor. Set yapısında tekrar eden verilerden sadece bir tanesini alır. Bu yüzden dizinin içindeki toplam veri sayısını 5 görüyoruz.

var setKullanimi=setOf<Int>(4,5,6,6,7,7,7,8)
println(setKullanimi.size)

Set yapısı ArrayOf gibi davranır. Yani içerisine tanımlandıktan sonra bir daha veri eklenemez ve çıkartılamaz. Boyutu bu yüzden bellidir. ArrayListOf gibi ekleme ve çıkarma yapabilmemiz için HashSet yapısını kullanmalıyız. Aşağıdaki kod bloğunda HashSet kullanımına değindik. 

var hashSetKullanimi=HashSet<String>()
hashSetKullanimi.add("Yasin")
hashSetKullanimi.add("Ertune")

 

 


0 Yorum