map
reduce
这个方法的主要作用是把 Stream 元素组合起来。它提供一个起始值(种子),然后依照运算规则(BinaryOperator),和前面 Stream 的第一个、第二个、第 n 个元素组合。从这个意义上说,字符串拼接、数值的 sum、min、max、average、add 都是特殊的 reduce。例如 Stream 的 add就相当于
BigDecimal sum = bigDecimals.reduce(BigDecimal.ZERO, (c1, c2) -> c1.add(c2));
BigDecimal sum = bigDecimals.reduce(BigDecimal.ZERO, BigDecimal::add);
这两者是一样的。