Kotlinde Diziler, Listeler, Mapler ve Setler
Kategori: Kotlin•8 Ocak 2025
Diziler (Arrays)
Diziler, aynı tipteki verileri tek bir değişkende saklamak için kullanılır.
Diziler sabit boyutludur ve sonradan eleman eklenemez.
Dizi elemanlarına index ile erişilir. Index 0'dan başlar.
val dizi = arrayOf(1, 2, 3, 4, 5)
- Dizi elemanlarına erişmek için:
println(dizi[0]) // 1, çünkü ilk eleman 0. index'te ve 1'e eşittir.
println(dizi[1]) // 2, çünkü ikinci eleman 1. index'te ve 2'ye eşittir.
- Dizi elemanlarını değiştirmek için:
dizi[0] = 10
- Dizi eleman sayısını öğrenmek için:
println(dizi.size)
Not: Diziler karışık tiplerde değişkenler içerebilir.
val karisik = arrayOf(5, 3.14, true, "bilo")
Listeler (Lists)
Listeler dinamik boyutlu veri yapılarıdır. Eleman eklenebilir veya çıkarılabilir.
Liste Türleri:
- MutableList (ArrayList): Eleman ekleme/silme yapılabilir.
- ImmutableList (listOf): Eleman eklenemez/silinemez.
MutableList Örneği:
val liste = arrayListOf("Ahmet", 265, "Mehmet", true)
println(liste.size) // Çıktı(Dizi Boyutu): 4
liste.add(25) // Yeni eleman ekleme
println(liste.size) // Çıktı(Dizi Boyutu): 5
println(liste[2]) // Çıktı: Mehmet
liste.removeAt(2) // Eleman silme
println(liste[2]) // Çıktı: true
ImmutableList Örneği:
val immutableList = listOf("Ahmet", 265, "Mehmet", true)
println(immutableList.size) // Çıktı(Dizi Boyutu): 4
// immutableList.add(25) // Hata: UnsupportedOperationException
println(immutableList[2]) // Çıktı: Mehmet
// immutableList.removeAt(2) // Hata: UnsupportedOperationException
Setler (Sets, HashSet)
Önemli Özellikler: -Setler, tekrar eden elemanları içermez -Elemanların sırasını garanti etmez -Index mantığı yoktur
val set = setOf(10, 10, 10, 20, 30)
println(set.size) // Çıktı: 3, çünkü 10 tekrar ediyor
Setlerde eleman ekleme ve silme için HashSet kullanılır
val hashSet = hashSetOf(10, 10, 10, 20, 30)
hashSet.add(40) // Eleman ekleme
hashSet.remove(10) // Eleman silme
hashSet.forEach { println(it) } // Çıktı: 20, 30, 40 (Sıralama değişebilir)
Mapler (Maps, HashMap)
Map yapıları anahtar-değer (key-value) çiftleri saklar.
Özellikler:
- Anahtar (key): Benzersizdir.
- Değer (value): Aynı anahtar için değiştirilebilir.
Kötü Kullanım Örneği:
val yemekDizisi = arrayListOf("Elma", "Armut", "Karpuz")
val kalorisi = arrayListOf(100, 300, 500)
println("${yemekDizisi[0]} yiyeceğinin kalorisi ${kalorisi[0]}'dir.")
Not: Bu yöntem karışık ve hataya çok açıktır. Bunun yerine HashMap kullanmalıyız.
HashMap Örneği:
val yemekKaloriHesabi = hashMapOf<String, Int>()
yemekKaloriHesabi.put("Elma", 100)
yemekKaloriHesabi.put("Armut", 300)
println(yemekKaloriHesabi["Elma"]) // 100
println(yemekKaloriHesabi["Armut"]) // 300
yemekKaloriHesabi["Elma"] = 500 // Değer güncelleme
println(yemekKaloriHesabi["Elma"]) // 500
Özet
- Diziler (Arrays): Sabit boyutludur, index ile erişim sağlanır.
- Listeler (Lists): Dinamik boyutludur, eleman eklenebilir/silinebilir.
- Setler (Sets): Her eleman benzersizdir, sırasız bir şekilde tutulur.
- Mapler (Maps): Anahtar-değer çiftleri, anahtarlar benzersizdir.