小编Tan*_*ano的帖子

了解Java Iterator

如果我运行以下代码,它将打印3次重复,但是当我在while循环中删除if语句时(只是为了查看它将迭代多少次),它会启动一个无限循环.

这个hasNext()方法实际上是如何工作的?我认为这将只迭代5次,因为我在列表中有5个项目.

    public class ExerciseOne {
    public static void main(String []args){
        String []colors = {"MAGENTA","RED","WHITE","BLUE","CYAN"};
        List<String> list = new ArrayList<String>();
        for(String color : colors)
            list.add(color);
        String[] removeColors = {"RED","WHITE","BLUE"};
        List<String> removeList = new ArrayList<String>();
        for(String color : removeColors)
            removeList.add(color);

        removeColors(list,removeList);
        System.out.printf("%n%nArrayList after calling removeColors:%n");
        for(String color : list)
        {
            System.out.printf("%s ",color);
        }
    }

    private static void removeColors(Collection<String> collection1, Collection<String> collection2)
    {
        Iterator<String> iterator = collection1.iterator();

            while(iterator.hasNext()){
                if(collection2.contains(iterator.next()))
                    System.out.println("duplicate");
            }
    }

}
Run Code Online (Sandbox Code Playgroud)

java iteration loops

2
推荐指数
1
解决办法
4572
查看次数

标签 统计

iteration ×1

java ×1

loops ×1