java“iterator.next()%2”有什么问题?
我的代码有什么问题?我试图找出这个集合是否包含奇数
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;
}
}
}
# 1 楼答案
问题是它只检查迭代器的第一个元素。如果当前元素为偶数,则不应返回,而是转到下一个元素。另一个问题是,如果希望自动取消装箱工作,则应该使用
Iterator<Integer>
,而不仅仅是原始的Iterator
通过使用foreach循环,它也将更加简洁易读:
这看起来像是家庭作业,或者至少是你自己能弄明白的东西,所以我不会给你答案,只是上面的提示
# 2 楼答案
或者你可以这样试试
循环中不要使用else,方法的最后一个语句应该是false语句
# 3 楼答案
您的方法只是检查集合的第一个元素,并判断其是否为奇数。不过,您应该确保只有在找到第一个奇数时才从循环中断