You need to enable JavaScript to run this app. 如何使用Java Stream的map和reduce对嵌套ArrayList<Integer>求和转int数组
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java Stream的map和reduce对嵌套ArrayList<Integer>求和转int数组

Java Stream 实现代码

实现思路

  • 外层map操作遍历每一个内层ArrayList<Integer>,完成集合到元素和的映射
  • 每个内层集合的求和逻辑强制使用reduce实现:设置初始累加值为0,依次累加集合中所有整数
  • 最终将求和后的整数流转换为int[]类型返回

完整代码

public static int[] res(ArrayList<ArrayList<Integer>> innerNums) {
    return innerNums.stream()
            // map操作:将内层集合映射为对应元素和
            .map(innerList -> innerList.stream().reduce(0, Integer::sum))
            // 转换为基础类型int数组
            .mapToInt(Integer::intValue)
            .toArray();
}

验证说明

以上代码完全满足要求:同时使用了map和reduce操作,输入给定的嵌套集合后,输出结果正好为[-5, 5, -4, -1]的int数组。如果需要先得到[[-5],[5],[-4], [-1]]的中间集合结果,只需将map中的返回值修改为new ArrayList<>(List.of(innerList.stream().reduce(0, Integer::sum)))再收集为List即可。

内容的提问来源于stack exchange,提问作者AetherRemnant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 21:48:01