为了账号安全,请及时绑定邮箱和手机立即绑定

在 Java 中,在应用流函数链之前检查集合是否为空是否可以提高性能?

在 Java 中,在应用流函数链之前检查集合是否为空是否可以提高性能?

喵喔喔 2023-07-19 16:45:22
Stream API 在空集合上的表现如何?在集合上执行流命令链之前检查是否为空是否有意义?例如,第一个或第二个示例块的总运行时间更好吗?List a = new ArrayList(); return a.stream.anyMatch("OK"::equals).orElse(null);与List a = new ArrayList();if(a.isEmpty()) {    return null;} else {    return a.stream.anyMatch("OK"::equals).orElse(null);}我知道第一个选项更漂亮,但这是一个关于性能的问题。
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

在集合上执行流命令链之前检查是否为空是否有意义?

从性能的角度来看,这可能会有所帮助,因为它绝对可以防止空流花费(一点)CPU 时间而不执行任何操作。

但从概念的角度来看:这不是一个好主意。流的全部要点是您不关心条目的数量。流(在很大程度上)是一种以“函数式编程”方式表达逻辑的方式。空流返回“空”结果。这就是它们的工作原理和使用方式。

例如,如果您预先添加不同的检查,那么您的代码还需要提供该空结果。

关于性能,您真正需要谨慎的事情是:大量流操作经常在少量元素上运行。


查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 59 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信