takeWhileとdropWhileで条件に応じたリスト操作をスマートに

Kotlin
記事内に広告が含まれる場合があります

Kotlinには、特定の条件に合致する範囲の要素を取得したりスキップできる関数として、takeWhiledropWhile があります。これらを使うことで、明確な条件ロジックに基づいた柔軟なリスト操作が可能になります。


takeWhileの使い方

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

val result = numbers.takeWhile { it < 5 }

println(result) // 出力: [1, 2, 3]

takeWhile は、条件が「true」の間だけ要素を取り続け、最初に「false」になる要素に達した時点で終了します。


dropWhileとの併用

Kotlin
val dropped = numbers.dropWhile { it < 5 }

println(dropped) // 出力: [6, 4, 5]

dropWhile は、takeWhileの逆で、条件に「true」となる間の要素を除外し、それ以降のすべての要素を取得します。


実用的な使い方例

1. データの前処理に便利(条件フィルタリング)

Kotlin
val rawScores = listOf(0, 0, 50, 60, 70)

val validScores = rawScores.dropWhile { it == 0 }

println(validScores) // 出力: [50, 60, 70]

最初の0点を無視して、有効なスコアだけを扱いたい場面に最適です。

2. 時系列データの条件抽出

Kotlin
val temps = listOf(12, 14, 18, 20, 30, 15)

val morningTemps = temps.takeWhile { it < 25 }

println(morningTemps) // 出力: [12, 14, 18, 20]

25度を超える前のデータだけ抽出したい時に使えます。


まとめ

関数処理内容
takeWhile条件を満たす間の要素を「先頭から」取得
dropWhile条件を満たす間の要素を「先頭から」スキップ

コードを直感的かつシンプルにしたいときには、takeWhiledropWhileは非常に役立ちます。ぜひ現場でも活用してみてください。

タイトルとURLをコピーしました