Java “问题是什么?”;迭代器.next()%2";?
我的代码有什么问题?我试图找出这个集合是否包含奇数Java “问题是什么?”;迭代器.next()%2";?,java,iterator,set,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 {
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;
}
}
}
公共静态布尔hasOdd(集合){
迭代器;
迭代器=set.iterator();
while(iterator.hasNext()){
if(迭代器.next()%2!=0){
返回true;
}否则{
返回false;
}
}
}
问题在于它只检查迭代器的第一个元素。如果当前元素为偶数,则不应返回,而是转到下一个元素。另一个问题是,如果希望自动取消装箱工作,则应该使用迭代器
,而不仅仅是原始的迭代器
通过使用foreach循环,它也将更加简洁易读:
for (Integer i : set) {
...
}
这看起来像是家庭作业,或者至少是你自己能弄明白的东西,所以我不给你答案,只给你上面的提示。你的方法只是检查集合的第一个元素,并判断这是否奇怪。不过,您应该确保只有在找到第一个奇数时才中断循环。或者您可以这样尝试
Iterator<Integer> iterator = set.iterator();
Iterator Iterator=set.Iterator();
不要在循环中使用else,false语句应该是方法的最后一个语句这是一个部分解决方案,并且不正确(提示-存在多个问题)。当布尔值执行任务时,为什么要使用布尔值?@RichardSitze现在可以了吗?你看到的问题是什么?最重要的是,这是一个教科书上的例子,如何不回答一个带作业标签的问题。更好。。。您仍然缺少迭代器。真的,这在这一点上属于JB.:-)无论如何,我取消了反对票。。。。或者,他可以根据约翰·尼塞特的建议写一行。然而,给出完整的代码是违反规则的家庭作业标记的问题。嘿,这不是一个家庭作业。ı我在一个网站上工作:。我正试图抓住比我更好的朋友。夏天是一个很好的机会。所以,如果不是家庭作业,请从你的问题中删除家庭作业标签。谢谢你,我会努力解决它。这不是家庭作业。我只是自己工作。