Kotlinでは、リストの要素をループ処理する際に、インデックスと要素を同時に取得できる withIndex
という便利な関数が用意されています。これを活用することで、for
ループをより直感的に書くことができます。
withIndexの基本的な使い方
Kotlin
val names = listOf("田中", "佐藤", "鈴木")
for ((index, name) in names.withIndex()) {
println("インデックス: $index, 名前: $name")
}
出力:
インデックス: 0, 名前: 田中
インデックス: 1, 名前: 佐藤
インデックス: 2, 名前: 鈴木
ポイント:
withIndex()
を使うことで、要素とインデックスを同時に取得可能for ((index, value) in list.withIndex())
で、データを直感的に扱える
withIndexの活用例
1. リストの要素を番号付きで表示
Kotlin
val items = listOf("リンゴ", "バナナ", "オレンジ")
items.withIndex().forEach { (index, item) ->
println("${index + 1}番目: $item")
}
出力:
1番目: リンゴ
2番目: バナナ
3番目: オレンジ
2. 偶数インデックスのみ処理する
Kotlin
val numbers = listOf(10, 20, 30, 40, 50)
for ((index, number) in numbers.withIndex()) {
if (index % 2 == 0) {
println("偶数インデックス $index: $number")
}
}
出力:
偶数インデックス 0: 10
偶数インデックス 2: 30
偶数インデックス 4: 50
3. 特定のインデックスに対する処理を簡潔に記述
Kotlin
val scores = listOf(85, 90, 78, 92, 88)
scores.withIndex().forEach { (index, score) ->
println("学生${index + 1}のスコア: $score")
}
出力:
学生1のスコア: 85
学生2のスコア: 90
学生3のスコア: 78
学生4のスコア: 92
学生5のスコア: 88
withIndexを活用するメリット
- リストのインデックスと要素を直感的に扱える
- 冗長な
for
ループやindices
の使用を避けられる - リスト内の特定のインデックスに対する処理を簡潔に記述できる
リストのインデックスと要素を同時に処理したい場合は、ぜひ withIndex
を活用してみてください!