Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “问题是什么?”;迭代器.next()%2";?_Java_Iterator_Set - Fatal编程技术网

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.:-)无论如何,我取消了反对票。。。。或者,他可以根据约翰·尼塞特的建议写一行。然而,给出完整的代码是违反规则的家庭作业标记的问题。嘿,这不是一个家庭作业。ı我在一个网站上工作:。我正试图抓住比我更好的朋友。夏天是一个很好的机会。所以,如果不是家庭作业,请从你的问题中删除家庭作业标签。谢谢你,我会努力解决它。这不是家庭作业。我只是自己工作。