diff --git a/CHANGELOG.md b/CHANGELOG.md index aba46ae03..2dab59eda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,11 @@ # 5.7.20 (2022-01-08) ### 🐣新特性 +* 【core 】 增加对null值友好的groupingBy操作的Collector实现,可指定map类型(pr#498@Gitee) +* ### 🐞Bug修复 * 【core 】 修复setter重载导致匹配错误(issue#2082@Github) +* 【core 】 修复RegexPool汉字匹配范围小问题(pr#2081@Github) ------------------------------------------------------------------------------------------------------------- # 5.7.19 (2022-01-07) diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/CollStreamUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/CollStreamUtil.java index e080ab563..ef3893d6d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/collection/CollStreamUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/collection/CollStreamUtil.java @@ -6,7 +6,14 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.stream.CollectorUtil; import cn.hutool.core.stream.StreamUtil; -import java.util.*; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.function.BiFunction; import java.util.function.Function; import java.util.stream.Collector; diff --git a/hutool-core/src/main/java/cn/hutool/core/stream/CollectorUtil.java b/hutool-core/src/main/java/cn/hutool/core/stream/CollectorUtil.java index 86357e00a..55e96877c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/stream/CollectorUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/stream/CollectorUtil.java @@ -1,8 +1,13 @@ package cn.hutool.core.stream; +import cn.hutool.core.lang.Opt; import cn.hutool.core.util.StrUtil; -import java.util.*; +import java.util.Collections; +import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; +import java.util.StringJoiner; import java.util.function.BiConsumer; import java.util.function.BinaryOperator; import java.util.function.Function; @@ -84,7 +89,7 @@ public class CollectorUtil { Supplier downstreamSupplier = downstream.supplier(); BiConsumer downstreamAccumulator = downstream.accumulator(); BiConsumer, T> accumulator = (m, t) -> { - K key = Optional.ofNullable(t).map(classifier).orElse(null); + K key = Opt.ofNullable(t).map(classifier).orElse(null); A container = m.computeIfAbsent(key, k -> downstreamSupplier.get()); downstreamAccumulator.accept(container, t); };