ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 3.3.2 reduce的用法 reduce(归约)操作相比之前提到的**终端操作**,可以表达更复杂的查询。下面有几个入门示例: **1. 计算和:** ```java List<Integer> nums = Arrays.asList(1, 6, 7, 4, 2); int initialValue = 0; int sum = nums.stream() .reduce(initialValue, (a, b) -> a + b); System.out.println(sum); /* 输出20 */ ``` **2. 计算最大值** ```java int max = nums.stream() .reduce(Integer.MIN_VALUE, (a, b) -> Math.max(a, b)); System.out.println(max); /* 输出7 */ ``` **3. 计算最小值** ```java int min = nums.stream() .reduce(Integer.MAX_VALUE, Integer::min); System.out.println(min); /* 输出1 */ ``` **4. 统计字符串列表中,所有字符串的长度总和** ```java int sumOfLen = strList.stream() .map(String::length) .reduce(0, Integer::sum); System.out.println(sumOfLen); /* 输出16 */ ``` > 这便是有名的`map-reduce`模式,该模式很容易并行化。