gpt4 book ai didi

java - 项目开发需要Lambda

转载 作者:行者123 更新时间:2023-12-01 07:01:59 27 4
gpt4 key购买 nike

我做了一些 PoC 来比较两种类型的实现交互列表的性能。

第一个是使用纯java使用 foreach并用“if”检查每个元素。

第二种方法是使用 lambda像这样:

int max1 =  lists1.stream()
.mapToInt(i -> i)
.max()
.getAsInt();

long finalCount = lists1.stream()
.filter(p -> p.intValue() == max1)
.count();

显然使用lambda比使用经典 java 快 5 倍 foreach .

我非常有信心强制使用 lambda在我的团队中我当前的项目就像一条规则,禁止使用经典的java foreach .

我的问题是是否存在一些我无法应用此规则的情况(需要 lambda),我的意思是,如果存在我无法使用 lambda 的异常使用集合。

最佳答案

Lambda+streams 明显更快?事实并非如此。

这很大程度上取决于具体情况,但一般来说,Java 7 循环比流更快,因为发生的事情较少。

回答你的问题:“否”;您不应该强制要求始终使用 lambda,因为:

  • 这是一种风格;两种形式都可以接受
  • 当作为流实现时,一些循环会变成火车残骸
  • 你的理由毫无根据
  • 可读性几乎总是胜过“性能”

对于并行流,处理速度可以更快,但前提是流足够大,足以证明管理流的开销是合理的。根据经验,如果您至少有 1000 个元素要处理,请尝试使用流。

关于java - 项目开发需要Lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43358852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com