【问题标题】:Is there a way to put "continue" inside a foreach arraylist [duplicate]有没有办法将“继续”放在 foreach 数组列表中 [重复]
【发布时间】:2016-11-16 14:29:40
【问题描述】:

break 和 continue 语句在 Array.forEach(..) 中不起作用。 有没有其他方法可以做到这一点?

【问题讨论】:

  • 您只需在 lambda 中什么都不做,而不是显式调用 continue
  • 这取决于具体的用例。您可以使用filter 过滤掉您想要“继续”循环的元素,根据用例(limit()findFirst() 等),您可以做很多事情而不是中断。 ..)
  • 简而言之,函数式编程不适用于诸如 break 和 continue 之类的过程实体。 forEach 不是控制结构,而是一种方法。

标签: java arrays java-8 break continue


【解决方案1】:

您不能在 Java 8 中这样做。您可以使用 Exception 来中断代码。这不是很漂亮,但如果你需要,它是可行的。

像这样:

try {
    Array.forEach((x) -> {
       if (condition) {
          throw new MyException();
       }
    });
} catch (MyException e) {
    // broke from loop
}

【讨论】:

  • 但这会破坏整个循环的执行。
  • 这是break的正常行为
猜你喜欢
  • 1970-01-01
  • 2023-03-09
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-20
  • 1970-01-01
相关资源
最近更新 更多