Yukarı Çık

Kotlin Temelleri 3 (Map Kullanımı ve Fonksiyonları)

31 Mayıs 2022   0 Yorum

Kotlin'de kullanılan Koleksiyon Yapıları gördük. Bu yapılara ek olarak en çok kullanılan Map sınıfını ekleyeceğiz. Map sınıfı ile bir nesneyi farklı bir nesne ile ilişkilendirebiliriz veya o nesneye nasıl ulaşacağımızı kendimiz belirleyebiliriz. Map'i diğer koleksiyon yapılardan ayıran en temel özellik key (anahtar) değerinin belirlenmesidir. Diğer yapılarda key kısmı sistem tarafından oluşturulurken Map yapısında bu key değeri yazılımcı tarafından oluşturulur. Bu sayede Map yapısında Key-Value ya da Anahtar-Değer ilişkisi bulunur. Bu kısımda verilere ulaşmak için Key değerini kullanırız. Key değeri ile de Value'ya ulaşabiliriz. 

 

Map sınıfı iki temel üzerine inşa edilmiştir. Bunlar;

Immutable: Bu koleksiyon yapılar üzerinde ekleme,çıkarma gibi işlemler yapılmaz. Sadece okuma işlemi yapılır. Yani oluşturduğumuz yapıya daha sonradan ekleme,çıkartma gibi işlemler yapamayız. Bir önceki bloğumuzda bu kısımdan bahsetmedik. Aslında orda da  ListOf(),SetOf() ve şimdi göreceğimiz MapOf() buna örnektir. 

Mutable: Veriler üstünde değişiklik yapılabilen yapılardır. Oluşturulmuş koleksiyon yapılar üzerinde ekleme, silme ve güncelleme gibi işlemler yapabiliriz. ArrayList(), ArrayListOf(), HashMap(), HashSetOf ve MutableMapOf() bu yapıya örnektir.

 

Immutable olarak mapimizi tanımladık. Key değerleri olarak 1,2 ve -1 atadık. Value değerleri olarak da x,y ve z değerlerini atadık. Key value tanımlarken araya to ekini koyuyoruz.

val mapKullanimi = mapOf(1 to "x", 2 to "y", -1 to "z")
println(mapKullanimi)

 

Şimdi mutable olarak map tanımlayalım. Veri tipinde key değerlerini String, value değerlerinin tipini de Int olarak tanımladık. Put fonksiyonu ile oluşturduğumuz mapimize veri ekledik. Daha sonra eklediğimiz veriye erişmek için get fonksiyonu içinde key değerini çağırdık. Bize çıktı olarak 100 sonucunu verecektir. Get fonksiyonunu kullanmak istemiyorsak direk key değerini köşeli parantez içinde çağırarak da ulaşabiliriz. 

var mapKullanimi= hashMapOf<String,Int>()
mapKullanimi.put("Elma",100);
println(mapKullanimi.get("Elma"))
println(mapKullanimi["Elma"])

 

Tanımladığımız map içindeki key değeri  "Bir" olan itemın key ve value değerini Remove fonksiyonu ile sildik.  Ayrıca size fonksiyonu ile tanımladığımız map sınıfında bulunan itemların sayısını bulabiliriz. 

var mapRemoveKullanimi= hashMapOf<String,Int>("Bir" to 100,"İki" to 200)
mapRemoveKullanimi.remove("Bir")
println(mapRemoveKullanimi.size)

 

Clear fonksiyonu ile map sınıfı içindeki tüm verileri temizleyebiliriz. Aşağıda bir map oluşturduk ve clear fonksiyonu ile o mapin içinde bulunan tüm verileri temizledik.

val clearMap = hashMapOf<String, Int>("Bir" to 100, "İki" to 200)
clearMap.clear()

 

Equals fonksiyonu ile iki ya da daha fazla map sınıflarını karşılaştırır. Aşağıdaki kod bloğunda 2 tane map tanımladık. İkisinin de içeriği aynı ve bunları equals fonksiyonu ile karşılaştırdık. Bunun sonucunda bize bir boolean tipinde cevap dönecek. Tanımladığımız iki map sınıfı da aynı olduğu için konsol ekranında true değeri döner.

val mapKulanimi = hashMapOf<Int, Int>(1 to 10, 2 to 20, 3 to 30)
val mapKulanimi2 = hashMapOf<Int, Int>(1 to 10, 2 to 20, 3 to 30)

println(mapKullanimi.equals(mapKullanimi2))

 

isEmpty fonksiyonu ile map sınıfında eleman var mı yok mu kontrolü yapabiliriz. Kontrol yaptığımızda bize bir boolean sonuç verir.  Contains fonksiyonu ile tanımladığımız map içinde eleman kontrolü yaparız. isEmpty fonksiyonu direk map sınıfının tamamında eleman var mı diye ararken, contains fonksiyonu bizim verdiğimiz değeri ilgili map içinde arar.  Aşağıdaki kod bloğunda içerisinde 2 tane veri olan bir map tanımladık. isEmpty kontrolü yaptığımızda  false değerini konsola yazdırır. Contains ile "İki" anahtar kelimesini map içinde aradık. Tanımladığımız map içinde bu key değeri olduğundan konsola true değeri döner. 

val mapKullanimi = hashMapOf<String, Int>("Bir" to 10, "İki" to 20)

println(mapKullanimi.isEmpty())
println(mapKullanimi.contains("İki"))

 

 


0 Yorum