public class Show {
public static ArrayList Ara = new ArrayList();
public static Iterator snake;
public static void kai(){
Ara.add(1);
Ara.add(2);
Ara.add(5);
Ara.add(7);
Ara.add(10);
Ara.add(13);
snake = Ara.iterator();
while(snake.hasNext()){
System.out.println(snake.next());
if(snake.next()==7)break;
}
}
public static void main(String[] args){
kai();
}
}
执行时,1、5、10 连续打印出来。我该如何解释呢?我预计 1、2、5 会打印出来。
最佳答案
您应该像下面这样更改代码:
public static void kai(){
Ara.add(1);
Ara.add(2);
Ara.add(5);
Ara.add(7);
Ara.add(10);
Ara.add(13);
snake = Ara.iterator();
while(snake.hasNext()){
int value = (int) snake.next();
System.out.println(value );
if(value ==7)break;
}
}
那样的话,您只需要在 while 循环中调用一次 iterator.next()
。
关于Java迭代器的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40574895/