2016-03-08 98 views
1

我是Java新手,正在嘗試學習迭代器的概念。我在Java Tutorial Oracle上遇到了這個代碼。我的問題是,condif (!cond(it.next()))代表什麼。該文件沒有說明什麼cond()代表。if(!cond(it.next()))代表`cond`是什麼意思?

static void filter(Collection<?> c) { 
    for (Iterator<?> it = c.iterator(); it.hasNext();) 
     if (!cond(it.next())) 
      it.remove(); 
} 
+2

它的全稱是「條件」 – Ian

+0

那麼什麼是在這種情況下怎麼辦?對不起,如果我的問題聽起來很愚蠢,只有兩個月學習java – Thor

+1

這實際上是一種方法。檢查代碼中是否有名爲'cond'的方法。它會調用這個方法。 – Codebender

回答

5

cond代表「條件」。將在您的上下文:

if (!cond(it.next())) 

這意味着,

「如果一個迭代/收藏在你的下一個項目不符合一定條件」

然後刪除它:

if (!cond(it.next())) 
    it.remove(); 

因此,您得到名稱「過濾器」

static void filter(Collection<?> c) 

cond是一個方法,檢查您傳遞的參數的有效性。根據適合的情況,由您決定cond的方法。我想這個教程簡單地寫爲cond來建議該方法應該是一個檢查「條件」,它是的一種方法。

至於單獨檢查條件,YT是雖然一定的方法,你可能有這樣的檢查條件:

if (it.next() != something) 
+0

非常感謝你的詳細解釋!上帝祝福你! – Thor

+1

@ TonyStark2歡迎您。 :)我認爲我們應該爲上帝使用資金。 =) – Ian

1

的COND可以代表你可以用它來定義任何方法爲了用於收集的迭代對象(it.next())一個標準被刪除

public boolean cond(Object input)