使用iterator迭代器遇到的问题

使用iterator迭代器遇到的问题

出现的问题

Set<String> all = Set.of("Hello", "world","sina","sohu");
        Iterator<String> iter = all.iterator();
        while (iter.hasNext()) {
            String string = iter.next();
            String string1 = iter.next();
            System.out.println(string,string1);
        }

这里出现的问题就是使用了两次next,导致的后果就是指针移动了两次,然后最后一次的时候,while判断中的hasNext()返回的就是false,导致少遍历一次。

正确做法

Set<String> all = Set.of("Hello", "world","sina","sohu");
        Iterator<String> iter = all.iterator();
        while (iter.hasNext()) {
        Struing next =iter.next();
        /...使用这个next,只移动一次指针../
        }

你可能感兴趣的:(Java)