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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Java 8流的N个数组元素的总和相关的知识,希望对你有一定的参考价值。

我可以有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个数组做这样的事情?

答案

这应该工作。

        int max = Stream.of(arr1, arr2, arr3)
                .map(array -> IntStream.of(array).sum())
                .max(Integer::compareTo)
                .orElseThrow(IllegalStateException::new);

以上是关于使用Java 8流的N个数组元素的总和的主要内容,如果未能解决你的问题,请参考以下文章

java编程入门8 数组

求算法,将N个整数分到M个数组中,要求元素和相差最小,元素个数相差最小

c语言:对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。

LeetCode233. 数字1的个数(数位dp)/1583. 统计不开心的朋友(模拟)/112. 路径总和 / 230. 二叉搜索树中第K小的元素 /968. 监控二叉树(树形dp)

1191.矩阵最大值

Subset(POJ-3977)