有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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;
        }
    }
}

共 (3) 个答案

  1. # 1 楼答案

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

    通过使用foreach循环,它也将更加简洁易读:

    for (Integer i : set) {
        ...
    }
    

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

  2. # 2 楼答案

    或者你可以这样试试

    Iterator<Integer> iterator = set.iterator();
    

    循环中不要使用else,方法的最后一个语句应该是false语句

  3. # 3 楼答案

    您的方法只是检查集合的第一个元素,并判断其是否为奇数。不过,您应该确保只有在找到第一个奇数时才从循环中断