Kotlin’de Örneklerle Koleksiyon #1

Vefa Can Beytorun
Paycell Tech Team
Published in
4 min readDec 30, 2023

Modern programlama dilleri alanında, Kotlin kendine has anahtar kelimeleri, etkileşim yeteneği ve ifade kabiliyetiyle öne çıkıyor. Temiz koleksiyon yapısı, veri manipülasyonunu etkili bir şekilde yönetmek için çok yönlü araç seti sunan Kotlin’in temel güçlerinden birini oluşturuyor. Kotlin konusunda deneyimli bir geliştirici olun ya da yeni başlıyorsanız, dilin potansiyelini tam anlamak için koleksiyon yapısını anlamak önemlidir. Makalenin 2. bölümüne aşağıdaki linktne ulaşabilirsiniz, iyi okumalar dilerim.

Hadi Kotlin koleksiyonlarının inceliklerini keşfedelim, nasıl kodu basitleştirdiklerini, okunabilirliği nasıl artırdıklarını ve geliştiricilere şıklık ve verimlilikle çeşitli görevlerle başa çıkma imkanı sunduklarını keşfedin.

Koleksiyonlar kendi arasında üç ana başlığa ayrılır:

Hadi örneklerle bu üç ana başlığı inceleyelim. (Makalemizin bu bölümünde üç ana başlıkta da kullanabileceğimiz koleksiyon operatörlerini ve list başlığının spesifik operatörlerini inceleyeceğiz.)

1. Koleksiyon Operatörleri ve List’in Spesifik Operatörleri

Kotlin’de List, sıralı bir öğe koleksiyonunu temsil eden temel bir koleksiyon türüdür. Kotlin standart kütüphanesinin bir parçasıdır ve öğelerine erişmek, bunları değiştirmek ve yinelemek için çeşitli yöntemler sağlar.

size

Listede kaç tane veri olduğunu döndürür. Örnekle göstermek istersek:

getOrNull ve getOrElse

getOrNull çağırılan indeksteki data yoksa null döndürür. getOrElse ise çağırılan indeksteki data yoksa onun yerine {} içerisine yazdığımız değeri döndürür. Örnekle göstermek istersek:

filter

filter ise girdiğimiz koşula göre listeyi filterliyor. Örnekle göstermek istersek:

forEach

Bu, listedeki her öğe üzerinde belirli bir işlemi gerçekleştirmek için kullanılan bir işlevdir. forEach, for ile benzerdir ancak forEach işlevi, işlemi tek bir satırda ifade edebilir ve koleksiyon üzerinde döngü işlemlerini gizleyebilir, bu da kodu daha okunabilir hale getirmeye yardımcı olmaktadır. Örnekle göstermek istersek:

Aynı örneği for ile yazmak istersek:

contains

contains listenin içerisindeki değeri aramak için kullanılır eğer aranan değer listenin içinde varsa true yoksa false olarak boolean değer döner. Örnekle göstermek istersek:

count

Belirli bir koşulu sağlayan bir listedeki öğelerin sayısını döndürmek için kullanılır. Örnekle göstermek istersek:

isEmpty

isEmpty, bir listenin boş olup olmadığını kontrol eder ve liste boşsa belirli bir değeri (alternatif bir değer) döndürür. Örnekle göstermek istersek:

subList

Kotlin’de, mevcut bir listeden bir alt liste elde etmek için subList fonksiyonunu kullanabilirsiniz. subList fonksiyonu iki parametre alır: alt listenin başlangıç indeksini ve bitiş indeksini. Örnekle göstermek istersek:

Linear Search (Doğrusal Arama)

indexOf, yazdığımız değerin dizindeki konumunu gösterir. lastIndexOf, listedeki yazdığımız değerin son dizinini gösterir. Örnekle göstermek istersek:

Sorting (Sıralama)

Kotlin’de, sıralama algoritması sayıları küçükten büyüğe doğru sıralarken, harfler için alfabetik sırayla, alfabetin ilk harfinden başlayarak son harfe kadar ilerler. Örnekle göstermek istersek:

Add (Veri Ekleme)

Kotlin’de add metodu ile listenin spesifik bir indeksine veri ekleyebilirsiniz. Örnekle göstermek istersek:

Update (Veriyi Güncelleme)

Kotlin’de update fonksiyonu ile spesifik indeksli bir veriyi değiştirebilirsiniz. Örnekle göstermek istersek:

fill() ise basitçe bütün verileri verilen değere eşitler. Örnekle göstermek istersek:

Remove (Veriyi Kaldırma)

Kotlin’de removeAt ile listedeki spesifik bir indeksle beraber o indekse eşit olan veriyi kaldırırsınız. Örnekle göstermek istersek:

Reverse ve Shuffle

reverse() ile listeyi ters çevirebilirsinzi. shuffle() ile de listeyi karıştırabilirsiniz. Örnekle göstermek istersek:

binarySearch

Belirli bir özelliği temsil eden bir alanı kullanarak sıralı bir liste arar. Örneğin, nesnelerin bir listesini, belirli bir özelliği temsil eden bir alanı kullanarak arayabilirsiniz. Örnekle göstermek istersek:

elementAtOrElse

Belirtilen indexteki öğeyi alır veya indeks geçerli değilse belirtilen bir varsayılan değeri döndürür. Örnekle göstermek istersek:

zipWithNext

Her bir sonraki öğe ile bir öğeyi eşleştirir. Bir çift, listedeki ilk ve son öğe hariç her öğe için oluşturulur. Örnekle göstermek istersek:

chunked

chunked() bir listenin elemanlarını belirli bir boyuttaki gruplara bölmek için kullanılır. Örnekle göstermek istersek:

distinctBy

Belirli bir veriyi dayalı alarak benzersiz öğeleri içeren yeni bir liste döndürür. Örnekle göstermek istersek:

partition

Belirli bir koşula dayalı olarak listeyi iki gruba böler. Örnekle göstermek istersek:

withIndex

Liste öğelerini ve bunların indekslerini içeren bir çift oluşturur. Örnekle göstermek istersek:

flatMap

flatmap(), her öğe için bir lambda ifadesini uygular ve her öğenin dönüşüm sonucunu içeren yeni bir liste oluşturur. Daha sonra, bu listelerin hepsini bir liste halinde birleştirir. Örnekle göstermek istersek:

all

Bütün verilerin belirli bir koşulu sağlayıp sağlamadığını kontrol etmek için kullanılır ve true veya false değerini döndürür. Örnekle göstermek istersek:

any

Belirli bir koşulu sağlayan en az bir öğe olup olmadığını kontrol etmek için kullanılır ve true veya false değerini döndürür. Örnekle göstermek istersek:

toSet

Bir listeyi bir küme veri yapısına dönüştürür. Örnekle göstermek istersek:

Sonuç

Kotlin programlama dilindeki temel koleksiyon yapıları ve operatörlerini keşfettik. List koleksiyonu üzerinden öğrendiğimiz fonksiyonlar, veri manipülasyonunu basitleştirir ve kod okunabilirliğini artırır. Kotlin koleksiyonları, geliştiricilere hızlı ve etkili veri yönetimi sağlar, temel işlemleri kolaylaştırır. Dokümantasyon ve standart kütüphane ise bu özelliklere kolay erişim sunar, geliştiricilere daha derin bir anlayış kazandırır.

HERKESE MUTLU YILLAR DİLERİM

Referanslar

--

--