withIndexでインデックスと要素を同時に処理

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

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を活用するメリット

  1. リストのインデックスと要素を直感的に扱える
  2. 冗長な for ループや indices の使用を避けられる
  3. リスト内の特定のインデックスに対する処理を簡潔に記述できる

リストのインデックスと要素を同時に処理したい場合は、ぜひ withIndex を活用してみてください!

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