抱歉,如果标题不是很清楚.

boolean condition = false;
for (Object o : c) {
    if (meetsCondition(o)) {
        condition = true;
        break;
    }
}
boolean condition = false;
Iterator<Object> iter = c.iterator();
while (!condition && iter.hasNext()) if (meetsCondition(iter.next())) condition = true;

如果对象o满足使用方法meetsCondition()描述的条件,那么我想更新结果并停止循环,因为程序只需要其中一个对象来满足该条件.

不确定什么是最佳实践,因为我们被告知使用break不是好的实践.

非常感谢.

推荐答案

实现这一点的方法还有很多.我更喜欢"溪流",它看起来像这样:

var condition = c.stream()
   .takeUntil(this::meetsCondition)
   .findAny()
   .isPresent();

Many "senior devs" are more familiar with your first solution. Because Streams are very new.
If I had the chance to choose between your solutions, I would take the first one.
The second example is very complex and hard to read.

编辑

正如 comments 中所建议的(感谢Dawood ibn Kareem),它可以是:

var condition = c.stream()
   .anyMatch(this::meetsCondition);

Java相关问答推荐

Java在模块化jar文件中找不到类,但是javap可以

AlarmManager没有在正确的时间发送alert

对运行在GraalVM-21上的JavaFX应用程序使用分代ZGC会警告不支持JVMCI,为什么?

如何打印本系列的第n项y=-(1)-(1+2)+(1+2+3)+(1+2+3+4)-(1+2+3+4+5)...Java中的(1+2+3+4...+n)

Java中如何根据Font.canDisplay方法对字符串进行分段

为什么不应用类型推断?

无法使用ApacheSpark依赖项构建JavaFX应用程序

OpenGL ES 3.0-纹理黑色

通过Spring Security公开Spring Boot执行器端点

如何只修改父类ChroniclerView位置0处的第一个嵌套ChroniclerView(child)元素?

SpringBoot:在条件{Variable}.isBlank/{Variable}.isEmpty不起作用的情况下进行路径变量验证

在Oracle中调用输出参数在索引处缺少IN或OUT参数的函数

处理4.3问题:javax.xml.ind包不存在(&Q;).您可能在学习GitHub教程时遗漏了库.&Q

为什么JavaFX MediaPlayer音频播放在Windows和Mac上运行良好,但在Linux(POPOS/Ubuntu)上却有问题?

如何使用jOOQ在PostgreSQL中从枚举类型生成Java枚举

ExecutorService:如果我向Executor提交了太多任务,会发生什么?

可以';不要在Intellij IDEA中使用最新的Java版本(JDK 21)

JAVA 正则表达式识别字符串string或字符串内的字符char

ChromeDriver 版本 117+ 强制另存为对话框 - 如何绕过? (selenium/Java)

如何在 lambda 中烘焙值