当前位置: 首页 > 知识库问答 >
问题:

从Java 8 forEach循环返回一个值

李烨
2023-03-14

在下面的示例中,someObjects是一个集合。如果循环中的条件匹配,我试图返回true,但这似乎无法编译。然而,当我添加“return”时,它工作得很好。我需要解决的问题是什么?

public boolean find(){

    someObjects.forEach(obj -> {
       if (some_condition_met) {
          return true;
       }
    });

    return false;
}

编译错误

类型Iterable中的方法forEach(Consumer)不适用于参数((obj)->{})

共有1个答案

毕瀚
2023-03-14

collection中的foreach方法需要一个consumer,这意味着一个函数接受一个值,但不返回任何东西。这就是为什么不能使用return true;而使用return;的原因。

如果您想在满足条件时跳出循环,那么最好使用一个简单的for(...)循环。我假设obj的类型是object:

for (Object obj : someObjects) {
  if (some_condition_met) {
    return true;
  }
}

return false;
 类似资料:
  • loop 有个用途是尝试一个操作直到成功为止。若操作返回一个值,则可能需要将其传递给代码的其余部分:将该值放在 break 之后,并由 loop 表达式返回。 fn main() { let mut counter = 0; let result = loop { counter += 1; if counter == 10 {

  • 我的程序中有两个while循环。第一个是针对游戏菜单的,第二个是针对实际游戏的。如果“Gameover-Event”发生,我想返回菜单。我不知道该怎么做。

  • 我创建了这个函数来计算我要测量的距离: 由于我不明白的原因,距离的值只返回一次。因此,如果我在forEach函数中抛出2个位置,并且在循环中使用console.log,我会看到所有的计算都是正确的。但如果我返回距离的值,则只返回一个值。 如何正确返回值? 我使用VueJS,其中'Distance toResponder'是一个计算属性来填充表: 因此函数应该返回每个响应者的距离。那么我需要如何调整

  • 问题内容: 今天,有人陪我一起滥用Java 中的关键字。我编写了一个简单的循环来验证数组中是否存在某些内容。假设是一个length数组,这是我的代码: 现在有人告诉我这不是一个很好的编程,因为我在循环内使用了该语句,这将导致垃圾回收发生故障。因此,更好的代码将是: 问题是我无法正确解释为什么第一个for循环不是一个好习惯。有人可以给我一个解释吗? 问题答案: 现在有人告诉我这不是一个很好的编程,因

  • 我有一个循环,在一次迭代中,我需要发出四个AJAX请求,然后等待最后一个请求的结果。 jQuery延迟-获取链接ajax调用的结果 将jquery.when().then()链接在具有固定链端调用的循环中 如何使for循环等到异步调用成功后再继续 现在,我只知道如何将数据从先前的promise传递给另一个promise(就像这个很酷的答案),但我需要将上次AJAX调用的值返回到外部数组(并等待上次

  • 问题内容: 假设我有一个像这样的循环: 快速提问:是否会停止循环本身的执行? 问题答案: 是的,停止执行并退出功能。always**会立即退出其功能,如果它位于for循环中,则不会进一步执行。 它很容易为您自己验证: **注意:请参阅有关的特例的其他答案,以及有关forEach循环如何具有自己的功能范围的答案,不会脱离包含函数。