← Ana Sayfaya Dön

Kotlinde Diziler, Listeler, Mapler ve Setler

Kategori: Kotlin8 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:

  1. MutableList (ArrayList): Eleman ekleme/silme yapılabilir.
  2. 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.