web-dev-qa-db-ja.com

Groovy、インデックスを使用してリストを反復処理する方法

Groovyですべての簡単な方法を使用すると、反復インデックスにアクセスしながらリストを反復する簡単な方法が必要になります。

for(i in 0 .. list.size()-1) {
   println list.get(i)
}

基本的なforループに暗黙的なインデックスはありませんか?

for( item in list){
    println item       
    println index
}
36
raffian

eachWithIndex を使用できます。

_list.eachWithIndex { item, index ->
    println item
    println index
}
_

Groovy 2.4以降では、 indexed() メソッドも使用できます。これは、collectなどのメソッドを使用してインデックスにアクセスするのに便利です。

_def result = list.indexed().collect { index, item ->
    "$index: $item"
}
println result
_
94
ataylor

インデックス1を開始する場合は、これを試してください。

[ 'rohit', 'ravi', 'roshan' ].eachWithIndex { name, index, indexPlusOne = index + 1 ->
    println "Name $name has position $indexPlusOne"
}
1
R Tiwari