Merhaba Arkadaşlar,
Mobilhanem.com sitemiz üzerinden anlattığımız Kotlin Dersleri yazı serimizde bu dersimizde Kotlin ArrayList kullanımını ve methodlarını anlatacağız.
Önceki yazılarımızda Array’den bahsetmiştik. Array’lerin data tutmak için kullanıldığını söylemiştik. O dersimizi okumadıysanız öncelikle o dersimizi okumanızı tavsiye ederim. Derse gitmek için tıklayınız.
Kotlin Arraylist
Array dersimize dikkat ederseniz bir arrayi oluşturmak için uzunluğunu arrayi oluştururken veriyoruz.
Örneğin:
val intArray = Array<Int>(10){0}
Yukarıdaki örnekte uzunluğu 10 olan ve başlangıç değerleri 0 olan bir array tanımladık. Fakat farkettiyseniz arrayi oluştururken her zaman başlangıç uzunluğunu vermek zorunda kaldık. 10’dan fazla item eklemeye kalktığımızda ise hata alacağız. Peki böyle bir durumda, yani belirsiz sayıda item eklememiz gerektiğinde ne yapacağız? İşte bunun için kotlin dilinde ArrayList’leri kullanabiliriz.
ArrayList’ler List interface’nden türetilmiştir. Interface’de ne ola ki dediğinizi duydum:) İlerleyen derslerimizde inşAllah anlatacağız. Şimdilik ArrayList’in List implementasyonu olduğunu bilmemiz ve bizim yerimize kendisi arka planda Array’i oluşturduğunu ve biz item ekledikce dolan Array’in yerine tekrardan daha uzun bir array oluşturduğunu bilmemiz yeterlidir. Yani ArrayList arka tarafta bir array tutar. Örneğin başlangıç uzunluğu 10 olan bir arrayi kendisi oluşturur ve biz item ekledikce 10 uzunluğuna ulaşır ulaşmaz / ve ya ulaşmadan 20 uzunluğunda başka bir array’i otomatik oluşturur ve ilk 10 elemanına eski arrayi yerleştirir. Böylelikle biz Kotlin ArrayList oluştururken başlangıç uzunluğunu vermemize gerek kalmaz.
Yukarıdaki anlattıklarım biraz detay olsada bilmenizde fayda vardır. Bilmeseniz bile ArrayList kullanımını anlamanıza engel değildir.
ArrayList tanımlamak
Yukarıda verdiğimiz detaylardan sonra artık gelelim Kotlin ArrayList’i nasıl tanımaladığımıza.
val arrayList: ArrayList<String> = ArrayList<String>() val arrayList2 = ArrayList<String>()
Yukarıda içinde String tutacak bir ArrayList tanımladık. Herhangi bir başlangıç uzunluğu vermedik. Aşağıda bir kaç farklı örnek daha vereyim.
val arrayList3 = ArrayList<Int>() val arrayList4 = ArrayList<Double>() val arrayList5 = ArrayList<HerHangiBirClass>()
ArrayList’e item eklemek (add methodu)
ArrayList’e item eklemek için add() methodunu kullanırız.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.add("Mobilhanem") arrayList.add("Kotlin Dersleri") val arrayList2 = ArrayList<Int>() arrayList2.add(3) arrayList2.add(5) arrayList2.add(7)
Yukarıda add methodu ile tanımlamış olduğumuz arrayList’lerimize değerler atadık. Dikkat ettiyseniz ArrayList’i oluştururken <> parantezleri arasında bu ArrayList’in hangi data tipini tutacağını bildiriyoruz. Nedir bu parantezler (<>), kullanımı nasıl olur derseniz bu ilerleyen derslerde göreceğimiz Generics kullanımı olduğunu bilmeniz şimdilik yeterlidir.
Bir arrayList’i String tutacak şekilde oluşturduktan sonra artık String dışında bir ekleme yaptığımzda hata verecektir.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.add("Mobilhanem") arrayList.add("Kotlin Dersleri") arrayList.add(5) //hata
add() methodu eklenen itemi her zaman array’in en sonuna ekler. Ayrıca add methodu kullanarak istediğimiz indexe’de itemimizi yerleştirebilirz.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.add("Mobilhanem") arrayList.add("Kotlin Dersleri") arrayList.add(2,"Test")
Yukarıda “Test” stringi artık arrayList’imizin 2. indexinde bulunmaktadır.
ArrayList’ten item almak (get methodu)
ArrayList’teki bir itemi almak için ise get methodu yada [ ] köşeli parantezleri içinde değerini almak istediğimiz index’i yazarız.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.add("Mobilhanem") arrayList.add("Kotlin Dersleri") arrayList.add(2,"Test") var deger1: String = arrayList.get(0) //ArrayListin 0. elemanını almak için var deger2: String = arrayList.get(2) //ArrayListin 2. elemanını almak için var deger3: String = arrayList[3] //ArrayListin 3. elemanını almak için println(deger1) //Taha println(deger2) //Test println(deger3) //Kotlin Dersleri
ArrayList’ten item silmek (remove,removeAt)
ArrayList’ten item silmek için remove() ve removeAt(), methodlarını kullanırız.
remove() methodu ile eklediğimiz itemi methoda vererek silebiliriz. Nasıl yani ?
arrayList.remove("Taha")
Yukarıda ki kod direk olarak eklemiş olduğumuz “Taha” stringini arrayList’imizden silecektir.
Bir indexteki itemi silmek istersek
arrayList.removeAt(3)
ArrayList önemli method ve değişkenler
size değişkeni
ArrayList’in uzunluğunu dönen bir değişkendir. Yani kaç item eklenmiş olduğu bilgisini verir.
val uzunluk = arrayList.size // içinde kaç item olduğu bilgisini döner
contains() methodu
Bir itemin arrayList’in içinde olup olmadığı bilgisini boolean olarak geri döner. Eğer item arrayList’te mevcutsa true , değilse false döner
val arrayList = ArrayList<String>() arrayList.add("Mobilhanem") arrayList.contains("Mobilhanem") //true arrayList.contains("Taha") //false
isEmpty() methodu
ArrayList’in içinde item var mı yok mu yani arrayList boş mu değil mi bilgisini döner.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.isEmpty() //false çünkü 1 eleman var val arrayList2 = ArrayList<String>() arrayList2.isEmpty() //true çünkü eleman yok
clear() methodu
ArrayList’in tüm elemanları siler.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.add("Mobilhanem") println(arrayList.size) //2 arrayList.clear() println(arrayList.size)//0
indexOf() methodu
ArrayList’imizin içinde aradığımız item’in index’sini verir. Eğer aradığımız item arrayList’te yoksa -1 değeri döner.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.add("Mobilhanem") arrayList.indexOf("Mobilhanem") // 1 arrayList.indexOf("Test") //-1
equals() methodu
İki ArrayList’i karşılaştırmak için kullanılır , yani ArrayList’ler aynı elemanlara sahip mi değil mi?
val arrayList = ArrayList<String>() arrayList.add("Taha") val arrayList2 = ArrayList<String>() arrayList2.add("Taha") println(arrayList.equals(arrayList2)) // true döner
ArrayList for ve foreach döngüsü
Çoğu zaman arrayList’in elemanlarını tek tek gezmemiz ve her bir itemine ulaşmamız gerekir. Bunu for döngüsü ve ya foreach döngüsü ile yapabiliriz. Öncelikle for döngüsü ile başlayalım.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.add("Mobilhanem") arrayList.add("Kotlin Dersleri") arrayList.add("Test") <strong>for(str in arrayList){</strong> <strong> println(str)</strong> <strong>}</strong> Konsol Çıktısı: Taha Mobilhanem Kotlin Dersleri Test
Yukarıda for döngüsü içinde arrayList’in tüm elemanları tek tek str değişkenine atadık ve sonrasında ekrana bastırdık.
Genel olarak ArrayList ve diğer listeleri dolaşırken for yerine foreach döngüsü kullanırız.
val arrayList = ArrayList<String>() arrayList.add("Taha") arrayList.add("Mobilhanem") arrayList.add("Kotlin Dersleri") arrayList.add("Test") <strong>arrayList.forEach { str -> println(str) } </strong>Konsol Çıktısı: Taha Mobilhanem Kotlin Dersleri Test
Yukarıdaki işlemde ise değerlerimiz tek tek yazmış olduğumuz str değişkenine atanıyor. Sonradan ekrana bastırıyoruz. Biz ekrana bastırma işlemlerini yaptık fakat siz farklı işlemler yaptırabilirsiniz.
Bu dersimde anlatmak istediklerim bu kadar. Bir sonraki dersimde Set Kullanımını ve methodlarını anlatacağım.
Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.
Tüm Kotlin Dersleri için tıklayınız.
13
[…] Önceki yazılarımızda Arraylist kullanımından bahsetmiştik. O dersimizi okumadıysanız öncelikle o dersimizi okumanızı tavsiye ederim. Derse gitmek için tıklayınız. […]
İyi Günler…
Derslerinizi değiniyle takip ediyorum. Bu vesileyle bir kez daha teşekkür ederim.
Bu dersi inceler iken ve verilen örnekleri uygular iken indexOf() method da farklı bir sonuç aldım.
Şöyle ki; anlatımın aksine aldığım değer 1 veya -1 olmak yerine item ın (dizin ögesinin) kaçıncı sırada olduğu sonucunu verdi.
Bu hususu kontrol edip farklığı izah edebilir misini? Eğer farklı bir durum var ise de ders notunu güncellemeniz sonraki arkadaşlar için iyi olur.
İyi çalışmalar, sağlıcakla kalınız…
indexOf() methodunun anlatımında yanlışlık yoktur. IndexOf methodu array’de kaçıncı sıradaysa o sırayı döner.
Arrayler’de saymaya 0. itemden başlanır. Bizim örneğimizde
0. item de “Taha”
1. item de ise “Mobilhanem” bulunmaktadır. Dolayısı ile indexOf(“Mobilhanem”) 1 sonucunu dönmektedir.
Eğer arrayde yok ise her zaman -1 döner.
val arrayList = ArrayList()
arrayList.add(“Taha”)
arrayList.add(“Mobilhanem”)
arrayList.add(“Kotlin Dersleri”)
arrayList.add(“Test”)
for(str in arrayList){
println(str)
}
Buradaki strong’lar ne işe yarıyor tam olarak ve Başka nerelerde kullanabiliriz.