2013-07-09 78 views
1

下一个索引我有:获取循环

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

这是更多钞票? 我正在使用迭代?

+0

不知道关于Groovy但假设将抛出一个异常'我==则为list.size() - 1'! – NINCOMPOOP

+0

是的,但是在那一刻被一个try-catch控制 –

+0

@DavidJara你不应该使用'try' ...'catch'块来解决错误的代码 –

回答

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

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

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" 
}