Understanding Java Iterator

问题描述 投票:2回答:3

如果运行以下代码,它将打印出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");
            }
    }

}

如果运行下面的代码,它将打印出3次重复的内容,但是当我在while循环中删除if语句时(只是看它将迭代多少次),它将启动一个无限循环。如何...

java loops iteration
3个回答
8
投票

1
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.