diff --git a/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java b/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java index 51a46c18c..84735a6a9 100644 --- a/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java +++ b/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java @@ -206,11 +206,11 @@ public class EasyStream extends AbstractEnhancedWrappedStream 元素类型 - * @param s 用来生成元素的 {@code Supplier} + * @param s 用来生成元素的 {@link Supplier} * @return 无限串行无序流 */ public static EasyStream generate(final Supplier s) { @@ -275,52 +275,53 @@ public class EasyStream extends AbstractEnhancedWrappedStream mapper) { + public int sum(ToIntFunction mapper) { return stream.mapToInt(mapper).sum(); } /** - * 计算long类型的总和 + * 计算long类型总和 * - * @param mapper 将对象转换为long的 {@link Function} - * @return long 总和 + * @param mapper 映射 + * @return long */ - public long sum(final ToLongFunction mapper) { + public long sum(ToLongFunction mapper) { return stream.mapToLong(mapper).sum(); } /** - * 计算double类型的总和 + * 计算double总和 * - * @param mapper 将对象转换为double的 {@link Function} - * @return double 总和 + * @param mapper 映射器 + * @return double */ - public double sum(final ToDoubleFunction mapper) { + public double sum(ToDoubleFunction mapper) { return stream.mapToDouble(mapper).sum(); } /** - * 计算 {@link Number} 类型的总和 + * 计算number的总和 * - * @param mapper 将对象转换为{@link Number} 的 {@link Function} - * @return {@link BigDecimal} , 如果流为空, 返回 {@link BigDecimal#ZERO} + * @param mapper 映射 + * @param 映射后的类型 + * @return {@link BigDecimal} */ public BigDecimal sum(final Function mapper) { - return stream.map(mapper).reduce(BigDecimal.ZERO, NumberUtil::add, NumberUtil::add); + return stream.map(mapper).reduce(BigDecimal.ZERO, NumberUtil::add,NumberUtil::add); } /** - * 计算 {@link BigDecimal} 类型的平均值 并以四舍五入的方式保留2位精度 + * 计算bigDecimal平均值 并以四舍五入的方式保留2位精度 * - * @param mapper 将对象转换为{@link BigDecimal}的 {@link Function} - * @return {@link Opt}<{@link BigDecimal}>; 如果流的长度为0, 返回 {@link Opt#empty()} + * @param mapper 映射 + * @return 计算结果 如果元素的长度为0 那么会返回为空的opt */ public Opt avg(final Function mapper) { return avg(mapper, 2); @@ -328,54 +329,53 @@ public class EasyStream extends AbstractEnhancedWrappedStream 如果流的长度为0, 返回 {@link Opt#empty()} + * @param mapper 映射 + * @param scale 精度 + * @return 计算结果 如果元素的长度为0 那么会返回为空的opt */ - public Opt avg(final Function mapper, final int scale) { + public Opt avg(final Function mapper, int scale) { return avg(mapper, scale, RoundingMode.HALF_UP); } /** - * 计算 {@link BigDecimal} 类型的平均值 + * 计算bigDecimal平均值 * - * @param mapper 将对象转换为{@link BigDecimal} 的 {@link Function} - * @param scale 保留精度 + * @param mapper 映射 + * @param scale 精度 * @param roundingMode 舍入模式 - * @return {@link Opt}<{@link BigDecimal}> 如果元素的长度为0 那么会返回 {@link Opt#empty()} + * @return 计算结果 如果元素的长度为0 那么会返回为空的opt */ - public Opt avg(final Function mapper, final int scale, - final RoundingMode roundingMode) { + public Opt avg(final Function mapper, int scale, RoundingMode roundingMode) { //元素列表 List bigDecimalList = stream.map(mapper).collect(Collectors.toList()); if (CollUtil.isEmpty(bigDecimalList)) { - return Opt.empty(); + return Opt.ofNullable(null); } - return Opt.ofNullable(EasyStream.of(bigDecimalList).reduce(BigDecimal.ZERO, BigDecimal::add) + return Opt.of(EasyStream.of(bigDecimalList).reduce(BigDecimal.ZERO, BigDecimal::add) .divide(NumberUtil.toBigDecimal(bigDecimalList.size()), scale, roundingMode)); } /** - * 计算int类型的平均值 + * 计算int平均值 * - * @param mapper 将对象转换为int 的 {@link Function} - * @return {@link OptionalDouble} 如果流的长度为0 那么会返回{@link OptionalDouble#empty()} + * @param mapper 映射器 + * @return {@link OptionalDouble} */ - public OptionalDouble avg(final ToIntFunction mapper) { + public OptionalDouble avg(ToIntFunction mapper) { return stream.mapToInt(mapper).average(); } /** - * 计算double类型的平均值 + * 计算double平均值 * - * @param mapper 将对象转换为double 的 {@link Function} - * @return {@link OptionalDouble} 如果流的长度为0 那么会返回{@link OptionalDouble#empty()} + * @param mapper 映射 + * @return {@link OptionalDouble} */ - public OptionalDouble avg(final ToDoubleFunction mapper) { + public OptionalDouble avg(ToDoubleFunction mapper) { return stream.mapToDouble(mapper).average(); } @@ -383,10 +383,10 @@ public class EasyStream extends AbstractEnhancedWrappedStream mapper) { + public OptionalDouble avg(ToLongFunction mapper) { return stream.mapToLong(mapper).average(); }