Koleksiyonlarda Veri Sınıfları
Haritalarda ve kümelerde kullanın
Koleksiyonlarda Veri Sınıfları, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
Veri Sınıfları Koleksiyonlarla Buluşuyor
Veri sınıfları değere dayalı equals ve hashCode işlevlerine sahip olduğundan koleksiyonların içinde kusursuz biçimde çalışırlar.
Bu derste veri sınıflarının listelerde, kümelerde ve eşlemelerde nasıl çalıştığı gösterilir.
Listedeki Veri Sınıfları
Veri nesnelerini bir listede saklayın ve diğer öğeler gibi üzerlerinde yineleme yapın.
Okunabilir toString işlevleri yazdırmayı kolaylaştırır.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Alice", 30), User("Bob", 25))
for (u in users) println(u)
}contains Değere Göre Çalışır
equals değerleri karşılaştırdığı için contains, farklı bir örnek olsa bile eşit bir nesneyi bulur.
Tam olarak aynı başvuruyu kullanmanız gerekmez.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Alice", 30))
println(users.contains(User("Alice", 30)))
}Kümeyle Yinelenenleri Kaldırma
Kümeler, equals ve hashCode kullanarak yinelenenleri reddeder.
Aynı değerlere sahip iki veri nesnesi aynı öğe kabul edilir.
data class Point(val x: Int, val y: Int)
fun main() {
val set = setOf(Point(1, 1), Point(1, 1), Point(2, 2))
println(set.size)
}Eşleme Anahtarı Olarak Veri Sınıfları
Aramalar değer eşitliğine dayandığı için veri sınıfı mükemmel bir eşleme anahtarıdır.
Bir anahtar nesnesini anında oluşturabilir ve yine de saklanan değeri bulabilirsiniz.
data class Coord(val x: Int, val y: Int)
fun main() {
val grid = mapOf(Coord(0, 0) to "start", Coord(1, 1) to "goal")
println(grid[Coord(1, 1)])
}Eşleme Değerleri Olarak Veri Sınıfları
Elbette veri sınıfları, bir kimlikle anahtarlanmış kapsamlı kayıtları modelleyen değerler de olabilir.
Bu, bellekteki aramalarda yaygın bir yapıdır.
data class User(val name: String, val age: Int)
fun main() {
val byId = mapOf(1 to User("Alice", 30))
println(byId[1]?.name)
}Koleksiyonları Filtreleme
Verilerinizi sorgulamak için veri sınıflarını filter gibi koleksiyon işlevleriyle birleştirin.
Lambda, özelliklere doğrudan erişir.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("A", 20), User("B", 40))
val adults = users.filter { it.age >= 30 }
println(adults)
}Özelliklere Eşleme
Nesnelerden oluşan bir koleksiyonu tek bir özellikten oluşan bir koleksiyona dönüştürmek için map kullanın.
Bu, yalnızca ihtiyacınız olan veriyi çıkarır.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Alice", 30), User("Bob", 25))
val names = users.map { it.name }
println(names)
}Özelliğe Göre Gruplama
groupBy, bir listeyi seçilen bir özellikle anahtarlanmış bir eşlemeye dönüştürür.
Burada kullanıcılar şehirlerine göre gruplanır.
data class User(val name: String, val city: String)
fun main() {
val users = listOf(User("A", "Paris"), User("B", "Paris"), User("C", "Rome"))
val byCity = users.groupBy { it.city }
println(byCity["Paris"]?.size)
}Öğeleri Değişmez Biçimde Güncelleme
Değişmez bir listedeki öğeyi güncellemek için liste üzerinde eşleme yapın ve eşleşen öğede copy kullanın.
Sonuç, bir nesnesi değiştirilmiş yeni bir listedir.
data class User(val name: String, val age: Int)
fun main() {
val users = listOf(User("Alice", 30), User("Bob", 25))
val updated = users.map { if (it.name == "Bob") it.copy(age = 26) else it }
println(updated)
}Bir Araya Getirme
Veri sınıfları koleksiyon öğeleri için idealdir:
containsve kümeler değere göre çalışır- Güvenli ve karşılaştırılabilir eşleme anahtarları oluştururlar
filter,mapvegroupByile doğal biçimde birlikte çalışırlarcopy, değişmez güncellemeleri mümkün kılar
data class User(val name: String, val age: Int)
fun main() {
val users = setOf(User("Alice", 30), User("Alice", 30))
println(users.size)
println(users.map { it.name })
}Kısa Sınama
Koleksiyonlardaki veri sınıfları konusundaki anlayışınızı sınayın.
Özet
Veri sınıflarının koleksiyonlarda nasıl çalıştığını öğrendiniz:
- Değer eşitliği,
contains, kümeler ve eşleme anahtarlarının temelidir filter,mapvegroupByile birlikte çalışırlarcopy, değişmez güncellemeleri destekler
Veri Sınıfları ve Yapı Bozma kursu tamamlandı.
Sıkça Sorulan Sorular
“Koleksiyonlarda Veri Sınıfları” dersi ücretsiz mi?
Evet — “Koleksiyonlarda Veri Sınıfları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“Koleksiyonlarda Veri Sınıfları” dersinde ne öğreneceğim?
Haritalarda ve kümelerde kullanın Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Koleksiyonlarda Veri Sınıfları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Veri Sınıflarını Tanımlama
- copy ve equals
- Yapı Bozma Bildirimleri
- Koleksiyonlarda Veri Sınıfları