Kotlin ile Dizi Elemanlarına Erişim Yöntemleri

Merhaba değerli dostlar! Kotlin ile veri yapıları ve algoritmalar yazı dizisine dizi elemanlarına erişim yöntemlerini anlatarak devam etmek istiyorum. Umarım faydalı bir yazı olur.

Kotlin ile dizi oluşturma yöntemlerinde, aslında verilere erişimi gösterdik. Ancak bu başlık altında tüm yöntemleri tek tek sizlere göstermeye çalışacağız. Amaç erişim yöntemlerini tek bir başlık altında toplamaktır.

Kotlin’de bir dizide bulunan verilere erişim yöntemleri şunlardır:

  • [] operatörü ve index ile erişim
  • get metodu ile erişim
  • Kotlin ile gelen özel metotlar ile erişim

[] operatörü ve index ile Erişim

Kotlin ve diğer programlama dillerinde bir dizide bulunan herhangi bir veriye erişmek için kullanılan en yaygın yöntemdir. [] operatörü, index verisi ile kullanıldığı zaman dizide bulunan veriye erişim sağlanır. Bunu daha iyi anlamak adına şu örneği inceleyelim:

fun main(args: Array<String>) {
    val colors = arrayOf("Red", "Green", "Blue","Yellow","Pink")
    val secondColor = colors[0]
    val fourthColor = colors[3]
    println(secondColor)
    println(fourthColor)
}
[] operatörü ile dizi elemanlarına erişmek

Bu yöntem ile verilere erişim sağlarken index bilgisinin 0(sıfır) ile dizinin eleman sayısının 1 eksiği arasında olmasına dikkat ediniz. Yukarıdaki örnek kod için aşağıdaki kullanım hata verecektir.

fun main(args: Array<String>) {
    val colors = arrayOf("Red", "Green", "Blue","Yellow","Pink")
    val secondColor = colors[-1]
    val fourthColor = colors[5]
    println(secondColor)
    println(fourthColor)
}
Index aralığını aşma hatası

Burada index verisi minimum 0, maksimum 4 arasında olabilir. Bu değerlerin dışındaki bir index verisi çalışma anında java.lang.ArrayIndexOutOfBoundsException hatasını verir.

get Metodu ile Erişim

Bu yöntemde get metodu, index bilgisi ile kullanılarak dizide bulunan herhangi bir veriye erişim sağlanır. Bir önceki metot için yazdığımız kodu aşağıdaki gibi yeniden yazalım.

fun main(args: Array<String>) {
    val colors = arrayOf("Red", "Green", "Blue","Yellow","Pink")
    val secondColor = colors.get(0)
    val fourthColor = colors.get(3)
    println(secondColor)
    println(fourthColor)
}

Yukarıdaki kullanım aynı ekran çıktısını verecektir. Aslında ilk yöntemde kullandığımız [] operatörü, Array sınıfında bulunan get metodunu çağırmaktadır. Yani ilk yöntemde dolaylı olarak get metodu çağrılırken, bu yöntemde doğrudan get metodu çağrılmıştır.

Kotlin ile Gelen Özel Metotlar ile Erişim

Kotlin ile gelen Array sınıfı için geliştirilen bazı özel metotlar ile dizideki verilere erişim sağlanabilir. Bu metotlar; component1(), component2(), component3(), component4() ve component5() dir.

Bu metotlar ile dizinin ilk 5 elemanına erişim sağlanabilir.

fun main(args: Array<String>) {
    val colors = arrayOf("Red", "Green", "Blue","Yellow","Pink")
    val secondColor = colors.component1()
    val fourthColor = colors.component4()
    println(secondColor)
    println(fourthColor)
}

Bu 5 metodun dışında yazacağımız kodun okunurluğunu arttıran birkaç metodumuz daha var. Şimdi bunları ele alalım:

fun main(args: Array<String>) {
    val colors = arrayOf("Red", "Green", "Blue","Yellow","Pink")
    val secondColor = colors.elementAt(0)
    val fourthColor = colors.elementAt(4)
}

elementAt() metodu index bilgisi verilen dizi elemanına erişim sağlar.

fun main(args: Array<String>) {
    val colors = arrayOf("Red", "Green", "Blue","Yellow","Pink")
    val clr = colors.elementAtOrElse(5,{_ -> "İndex aşımı"})
    println(clr)
}

elementAtOrElse() metodu, eğer verilen index bilgisi mevcut değilse ek bir bilgi göstermeyi sağlar. Yukarıda verilen kod ile 5 değerinin, dizinin index aralığında olmadığı bilgisini vermektedir. Bu kodun ekran çıktısı aşağıdaki gibidir.

elementAtOrElse() kullanımı

Eğer kodumuzda aşağıdaki değişikliği yapıp tekrar çalıştırırsak bu kez o indexteki verinin kendisi kullanıcıya gösterilir.

fun main(args: Array<String>) {
    val colors = arrayOf("Red", "Green", 
                         "Blue","Yellow","Pink","Black")
    val clr = colors.elementAtOrElse(5,{_ -> "İndex aşımı"})
    println(clr)
}
elementAtOrElse() kullanımı

Diğer bir metot aşağıdaki gibidir.

fun main(args: Array<String>) {
    val colors = arrayOf("Red", "Green", "Blue","Yellow","Pink")
    val clr = colors.elementAtOrNull(5)
    println(clr)
}

ElementAtOrNull() metodu index bilgisi verilen dizi elemanına erişim sağlar. Eğer verilen index bilgisi geçersiz ise bu durumda null döndürür. Yukarıdaki kodun ekran çıktısı aşağıdaki gibi olur.

elementAtOrNull( ) kullanımı

Burada ele aldığımız tüm metotlar aynı işlevi yapmakta ve arka planda get metodunu çağırmaktadır.

Şimdilik bu kadar. Bir sonraki makalede dizi elemanlarının tamamına erişim yöntemlerinden bahsedeceğim. Burada anlattıklarımız bir dizi de bulunan belirli bir elemana erişim yöntemleridir. Ancak bazı durumlarda dizinin tüm elemanlarına erişim sağlamak isteriz. Bir sonraki makalede bu konu üzerinde duracağız.

**Bana en büyük desteğiniz yazılarıma yorum yapmanız ve paylaşmanızdır.