Chr*_*eco 0 java lambda java-8 java-stream
我做了一些PoC来比较两种类型的实现交互列表的性能.
第一个是使用纯java,foreach并使用'if'检查每个元素.
第二种方法是这样使用lambda:
int max1 = lists1.stream()
.mapToInt(i -> i)
.max()
.getAsInt();
long finalCount = lists1.stream()
.filter(p -> p.intValue() == max1)
.count();
Run Code Online (Sandbox Code Playgroud)
显然使用lambda比使用经典java快5倍foreach.
我非常有信心强制要求lambda在我当前的项目中使用我的团队,就像规则一样,禁止使用经典java foreach.
我的问题是,如果存在一些我无法应用此规则的场景(需要lambda),我的意思是,如果存在异常,我无法使用lambda集合.
Lambda +流明显更快?不是这样.
它在很大程度上取决于具体情况,但一般来说,Java 7循环比流更快,因为它的持续时间较少.
回答你的问题:"不"; 你不应该强制要求总是使用lambdas,因为:
对于并行流,处理可以更快,但仅当流足够大以证明管理流的开销时.根据经验,如果您要处理至少1000个元素,请尝试使用流.
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |