Groovy, как перебрать список с индексом - PullRequest
35 голосов
/ 01 марта 2012

При всех сокращенных способах работы в Groovy, существует более простой способ итерации списка при наличии доступа к индексу итерации.

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

Нет ли неявного индекса в базовомfor петля?

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

Ответы [ 2 ]

92 голосов
/ 01 марта 2012

Вы можете использовать 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
1 голос
/ 27 апреля 2015

Попробуйте, если хотите запустить индекс 1.

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