【问题标题】:What does `cond` in `if (!cond(it.next()))` stand for?`if (!cond(it.next()))` 中的 `cond` 代表什么?
【发布时间】:2016-06-21 22:34:30
【问题描述】:

我是 Java 新手,正在尝试学习迭代器的概念。我在 Java Tutorial Oracle 中遇到过这段代码。我的问题是,if (!cond(it.next())) 中的cond 代表什么。文档没有具体说明 cond() 代表什么。

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

【问题讨论】:

  • 它代表“条件”
  • 那么它在这种情况下做了什么?对不起,如果我的问题听起来很傻,学习 java 才两个月
  • 其实是一种方法。检查您的代码中是否有一个名为 cond 的方法。它会调用那个方法。

标签: java iterator conditional


【解决方案1】:

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

 public boolean cond(Object input)

【讨论】:

    【解决方案2】:

    cond 代表“条件”。把它放在你的上下文中:

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

    意思是,

    “如果您在迭代/集合中的下一个项目不符合特定条件”

    然后删除它:

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

    因此你得到了“过滤器”这个名字

    static void filter(Collection<?> c)
    

    cond 是一种检查传递参数有效性的方法。您可以根据情况来定义cond 的方法。我猜本教程只是写成cond 来暗示该方法应该是一个检查“条件”并且它一个方法。

    仅就检查条件而言,yt 不一定是一种方法,因为您可能有这样的检查条件:

    if (it.next() != something)
    

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 2013-05-01
      • 2016-02-09
      • 2023-04-04
      • 2019-02-25
      相关资源
      最近更新 更多