实际上
range,这是理想的。
IntStream.range(0, 100).filter(x -> x % 3 == 0); //107,566 ns/op [Average]
编辑:Holgers的解决方案是性能最快的解决方案。
由于以下几行代码
IntStream.range(0, 100).filter(x -> x % 3 == 0).forEach((x) -> x = x + 2);IntStream.range(0, 100 / 3).map(x -> x * 3).forEach((x) -> x = x + 2);int limit = ( 100 / 3 ) + 1; IntStream.iterate(0, n -> n + 3).limit(limit).forEach((x) -> x = x + 2);
显示这些基准结果
Benchmark Mode Cnt Score Error UnitsBenchmark.intStreamTest avgt 5 485,473 ± 58,402 ns/opBenchmark.intStreamTest2 avgt 5 202,135 ± 7,237 ns/opBenchmark.intStreamTest3 avgt 5 280,307 ± 41,772 ns/op
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)