簡體   English   中英

“iterator.next()%2”有什么問題?

[英]What is the issue with “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;
        }
    }
}

問題是它只檢查迭代器的第一個元素。 如果當前元素是偶數,則不應返回,而是轉到下一個元素。 另一個問題是,如果您希望自動拆箱工作,您應該使用Iterator<Integer> ,而不僅僅是原始Iterator

使用foreach循環也會更簡潔和可讀:

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

這看起來像是家庭作業,或者至少是你自己可以弄明白的東西,所以我不會給你解決方案,只有上面的提示。

你的方法只是檢查集合的第一個元素,並告訴它是否是奇數。 但是,只有在找到第一個奇數時,才應確保從循環中斷。

或者你可以嘗試這樣

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

並且不要在循環中使用else,而false語句應該是方法的最后一個語句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM