"iterator.next()%2"有什么问题?

fer*_*şer 2 java iterator set

我的代码有什么问题?我试图找出该集合是否包含任何奇数

public static boolean hasOdd (Set<Integer> set) {
    Iterator iterator;
    iterator = set.iterator();

    while (iterator.hasNext()) {
        if(iterator.next()%2 != 0) {
            return true;
        } else {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 7

问题是它只检查迭代器的第一个元素.如果当前元素是偶数,则不应返回,而是转到下一个元素.另一个问题是,如果您希望自动拆箱工作,您应该使用Iterator<Integer>,而不仅仅是原始Iterator.

使用foreach循环也会更简洁和可读:

for (Integer i : set) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

这看起来像是家庭作业,或者至少是你自己可以弄明白的东西,所以我不会给你解决方案,只有上面的提示.