Java迭代器的东西

标签 java iterator

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/

相关文章:

java - 如何将带有 2DGraphics 的 JPanel 放在 JFrame 上(同一类)

c++ - 迭代器和 const_iterator operator++ post and prefix

c++ - 抽象容器类和子类可以迭代吗?

java - GWT JSNI - 调用特定对象的java方法

java - 来自 Http 客户端的 HttpURLConnection 更新

c++ - 如果我们不想将每个元素转换为一个转换元素,而是两个,我们如何使用 std::transform?

c++ - 缓存结束迭代器——好主意还是坏主意?

python - 排除最后一个元素的迭代器

java - 根据输入的总数增加数组大小

java - 小程序中收到二进制格式的短信如何获取短号码