JAVA Foreach 流式传输

标签 java foreach java-8 java-stream

我正在尝试将 foreach 转换为流

for (Entity entity : listOfEntitys.getAll()) {
        if (!isEntityDateValid(entity.getStartDate())
                || !isEntityDateValid(entity.getEndDate())) {
            return false;
        }
    }

所以我这样转换

  if (listOfEntitys.getAll() != null) {
       return listOfEntitys.getAll().stream().anyMatch(entity-> !isEntityDateValid(entity.getStartDate())
                || !isEntityDateValid(entity.getEndDate()));
    }

但我把它搞砸了,因为它总是评估 boolean 值,我只想在它满足条件时返回它

最佳答案

如果您只希望在特定条件下发生返回,您的流命令将需要成为 if 语句的一部分。

if (listOfEntities.getAll()!=null && listOfEntities.getAll().stream().anyMatch(...)) {
    return false;
}

但使用 !allMatch(X && Y) 可能比 anyMatch(!X || !Y) 更清楚。

if (listOfEntities.getAll()!=null
    && !listOfEntities.getAll().stream()
           .allMatch(entity -> isEntityDateValid(entity.getStartDate())
                     && isEntityDateValid(entity.getEndDate()))) {
    return false;
}

关于JAVA Foreach 流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42344256/

相关文章:

php - 在php中循环遍历多个数组

java - 从 lambda 表达式返回值?

java - 通过java mail api从交换服务器上的电子邮件帐户读取电子邮件

java - onBackPressed() 没有被调用

javascript - 如何使用 Google Cloud Function 查询现有的子对象并循环对象以检测它是否存在于 Firebase 中?

java - 您何时以及为什么会使用 Java 的供应商和消费者接口(interface)?

intellij-idea - Java8 通过调用 "cannot resolve constructor"报告 "::new"

java - 使用struts2在jsp页面中显示字符串的值

java - Spring PagingAndSortingRepository 在处理期间删除条目

java - 哪个更有效,for-each 循环还是迭代器?