循环获取下一个索引

时间:2013-07-09 16:19:09

标签: groovy

我有:

List<Object> list = ((Dao)dao).findAll();
for(int i; i < list.size(); i++) {
    list.getIndex(i);
    list.getIndex(i+1);
}

这可能吗? 我正确使用迭代?

2 个答案:

答案 0 :(得分:1)

您可以这样做,但为了防止异常,您应该使用for (int i = 0 ; i < list.size() - 1; i++)


您可以使用此collate获取非重叠对:

[1, 2, 3, 4, 5, 6, 7, 8, 9].collate(2).each { 
  def (first, second) = it
  println "$first $second" 
}

将打印:

1 2
3 4
5 6
7 8
9 null

答案 1 :(得分:1)

如果你想比较邻居,你可能会更好:

for(int i = 1; i < list.size() ; i++) {
 list.getIndex(i - 1)
 list.getIndex(i)
}

或者我认为你可以这样做:

list.collate( 2, 1, false ).each { a, b ->
    println "$a $b"
}