首页 > 解决方案 > 使用 java8 流 api 为限制 10 累积查找索引

问题描述

我正在学习 java8 流 api。igot面临这个问题。这里有 9 个数字“1,2,3,4,5,6,7,8,9”。我想为 1+2+3+....+n>=10 找到 n 。如何使用 java8 流 api 查找 n?

我尝试使用for循环来查找n,代码如下:

int sum,n=0;
for(int i=0;i<arr.length;i++){
    sum+=arr[i]
    if(sum>=10){
        n=i;
        break;
    }
}

标签: javajava-8java-stream

解决方案


int n = IntStream.range(0, arr.length)
        .filter(i -> Arrays.stream(arr).limit(i + 1).sum() >= 10)
        .findFirst()
        .orElse(-1);
System.out.println(n); // return 3 (1 + 2 + 3 + 4 = 10)

推荐阅读