我是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();
}
答案 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)