使用Java 8流的N个数组元素的总和

问题描述 投票:0回答:1

我可以有N个不同长度的数组。重要的事情是我不知道可以有多少个数组。让我们举一个只有3个数组的示例:

Integer arr1[] = {5, 10, -5};
Integer arr2[] = {8, 3};
Integer arr3[] = {12, -1, 0, 9};

List<String> result = Arrays.stream(arr1)
        .flatMap(s1 -> Arrays.stream(arr2)
                .flatMap(s2 -> Arrays.stream(arr3)
                        .map(s3 -> s1 + s2 + s3)))
        .collect(Collectors.toList());

是否可以使用Stream对N个数组做这样的事情?

java arrays stream sum
1个回答
0
投票

这应该工作。

        int max = Stream.of(arr1, arr2, arr3)
                .map(array -> IntStream.of(array).sum())
                .max(Integer::compareTo)
                .orElseThrow(IllegalStateException::new);
© www.soinside.com 2019 - 2024. All rights reserved.