//我正在寻找使用流的循环,如下所示:

int inputArray[] = {4, 6, 5, -10, 8, 1, 2};

    for (int i : inputArray)
            {
                for (int j = i+1; j < inputArray.length; j++)
                {
                    if(inputArray[i]+inputArray[j] == inputNumber)}}


//尝试了类似的方法,但是没有用

IntStream intStream1 =  Arrays.stream(inputArray);

    intStream1.forEach(i -> {
            IntStream.range(i+1,... ).forEach(j -> {

            });
        });

最佳答案

这是您要的流答案(确定数组中的任何两个数字之和是否等于给定值)

int inputArray[] = {4, 6, 5, -10, 8, 1, 2};
int inputNumber = -8;

IntStream.range(0, inputArray.length-1).forEach(i -> IntStream.range(i+1, inputArray.length)
    .forEach(j -> {
        if (inputArray[i]+inputArray[j] == inputNumber)
            System.out.println("Found "+inputNumber+"; a["+i+"]="+inputArray[i]+" a["+j+"]="+inputArray[j]);
        }));;


产生结果:

Found -8; a[3]=-10 a[6]=2

10-08 15:41