`if(!cond(it.next()))`中的`cond`代表什么?

时间:2016-03-08 05:23:19

标签: java iterator conditional

我是Java的新手,正在尝试学习迭代器的概念。我在Java Tutorial Oracle中遇到过这段代码。我的问题是,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 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

cond可以表示任何方法,您可以使用它来定义要用于Collection的迭代对象(it.next())的条件以便删除

 public boolean cond(Object input)