Iteration in Kotlin

 Iteration in Kotlin is versatile and offers several ways to loop through collections, ranges, and other iterable structures. Here's a breakdown of the common iteration techniques:

1. for Loops:

 * Iterating over a collection:

   val fruits = listOf("apple", "banana", "cherry")

for (fruit in fruits) {

    println(fruit)

}


 * Iterating over a range:

   for (i in 1..5) { // Inclusive range: 1, 2, 3, 4, 5

    println(i)

}


for (i in 1 until 5) { // Exclusive range: 1, 2, 3, 4

    println(i)

}


for (i in 5 downTo 1) { // Reverse iteration: 5, 4, 3, 2, 1

    println(i)

}


for (i in 1..10 step 2) { // Iterating with a step: 1, 3, 5, 7, 9

    println(i)

}


 * Iterating with index:

   val fruits = listOf("apple", "banana", "cherry")

for ((index, fruit) in fruits.withIndex()) {

    println("Index: $index, Fruit: $fruit")

}


2. while and do-while Loops:

 * while loop:

   var count = 0

while (count < 5) {

    println("Count: $count")

    count++

}


 * do-while loop:

   var count = 0

do {

    println("Count: $count")

    count++

} while (count < 5)


3. forEach and other Higher-Order Functions:

 * forEach:

   val numbers = listOf(1, 2, 3, 4, 5)

numbers.forEach { number ->

    println(number)

}

//or, when the lambda parameter is the only parameter

numbers.forEach {

    println(it)

}


 * forEachIndexed:

   val numbers = listOf(1, 2, 3, 4, 5)

numbers.forEachIndexed { index, number ->

    println("Index: $index, Number: $number")

}


 * map, filter, reduce, etc.: These functions, while not strictly "iteration" in the traditional sense, provide powerful ways to transform and process collections.

   val doubledNumbers = numbers.map { it * 2 } // [2, 4, 6, 8, 10]

val evenNumbers = numbers.filter { it % 2 == 0 } // [2, 4]

val sum = numbers.reduce { acc, number -> acc + number } // 15


4. Iterators:

 * You can explicitly use iterators for more fine-grained control over iteration.

   val iterator = fruits.iterator()

while (iterator.hasNext()) {

    val fruit = iterator.next()

    println(fruit)

}


Key Considerations:

 * Readability: for loops are often the most readable for simple iteration. forEach and other higher-order functions are excellent for concise code when performing operations on each element.

 * Control Flow: while and do-while loops are useful when you need more complex control over the loop's execution based on conditions.

 * Transformation: map, filter, and reduce are essential for functional-style programming and transforming collections.

 * Performance: In most cases, Kotlin's iteration methods are highly optimized. However, for very performance-critical scenarios, consider profiling your code.

 * Destructuring: Kotlin's destructuring capabilities (like (index, fruit)) make it easy to work with collections of pairs or other structured data.

By choosing the appropriate iteration technique, you can write clean, efficient, and expressive Kotlin code.


Comments

🎮 POPÜLER ⭐ 4.5

Ultra Blocks

Klasik Bulmaca · Strateji · Zeka Oyunu

Hızlı düşün, akıllıca istifle ve küresel liderlik tablosunda zirveye oyna! Ultra Blocks, klasik arcade bulmaca mantığını modern strateji ve göz alıcı görsel efektlerle birleştiriyor. Blokları sürükleyip yerleştir, tam satırları temizle ve rekorlarını kır!

🏆 Küresel Sıralama PlayFab ile dünyaya meydan oku
🎨 Özelleştirilebilir Tema Neon’dan klasik ahşaba
📱 Her Cihazda Telefon, tablet, TV ve katlanabilir
👑 VIP Kulüp Reklamsız · Sınırsız döndürme
⬇️ Google Play'den Ücretsiz İndir
📦 50 MB · Çevrimdışı oynanabilir 🔒 Veriler şifrelenir

Popular posts from this blog

Kotlin Hello World

Kotlin Android Program (QCR) Application Codes That Read Text in Photos

Kotlin Google Sign in Activity with Layout Example