小编Ale*_*Hou的帖子

Java Stream 比 for 循环慢

有人告诉我 Java Stream 是处理大量数据的不错选择,我最近做了一个比较测试。然而测试结果却出人意料:

问题来自CodeWar:

假设有一个最初有100人的地铁,每一站都有几个人上车,也有几个人下车。目标是统计大量停靠站后留在地铁中的人数(100000)。

这是我的代码:

import java.util.ArrayList;

public class Metro1 {
    private final static int STOPS = 100000;
    private static ArrayList<int[]> metro = new ArrayList<int[]>();

    public static int sum1() {
        int sum = 0;
        for(int[] x: metro) {
            sum +=x[0] - x[1];
        }
        return sum;
    }

    public static int sum2() {
        return metro.stream()
                .mapToInt(x -> x[0]-x[1])
                .sum();
    }
    public static void main(String[] args) {
        long start=0;
        long end = 0;
        metro.add(new int[] {100,0});
        for(int i=1;i<STOPS;i++) {
            int in …
Run Code Online (Sandbox Code Playgroud)

java algorithm java-stream

0
推荐指数
1
解决办法
3807
查看次数

标签 统计

algorithm ×1

java ×1

java-stream ×1