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 b70f24a62..989ae6c6b 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 @@ -22,7 +22,7 @@ import java.util.stream.Collectors; /** * 集合的stream操作封装 * - * @author 528910437@QQ.COM, VampireAchao<achao1441470436@gmail.com> + * @author 528910437@QQ.COM, VampireAchao<achao1441470436@gmail.com>Lion Li> * @since 5.5.2 */ public class CollStreamUtil { @@ -55,7 +55,7 @@ public class CollStreamUtil { */ public static Map toIdentityMap(Collection collection, Function key, boolean isParallel) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } return toMap(collection, (v) -> Opt.ofNullable(v).map(key).get(), Function.identity(), isParallel); } @@ -88,7 +88,7 @@ public class CollStreamUtil { */ public static Map toMap(Collection collection, Function key, Function value, boolean isParallel) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } return StreamUtil.of(collection, isParallel) .collect(HashMap::new, (m, v) -> m.put(key.apply(v), value.apply(v)), HashMap::putAll); @@ -122,7 +122,7 @@ public class CollStreamUtil { */ public static Map> groupByKey(Collection collection, Function key, boolean isParallel) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } return groupBy(collection, key, Collectors.toList(), isParallel); } @@ -160,7 +160,7 @@ public class CollStreamUtil { public static Map>> groupBy2Key(Collection collection, Function key1, Function key2, boolean isParallel) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } return groupBy(collection, key1, CollectorUtil.groupingBy(key2, Collectors.toList()), isParallel); } @@ -197,7 +197,7 @@ public class CollStreamUtil { public static Map> group2Map(Collection collection, Function key1, Function key2, boolean isParallel) { if (CollUtil.isEmpty(collection) || key1 == null || key2 == null) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } return groupBy(collection, key1, CollectorUtil.toMap(key2, Function.identity(), (l, r) -> l), isParallel); } @@ -235,7 +235,7 @@ public class CollStreamUtil { public static Map> groupKeyValue(Collection collection, Function key, Function value, boolean isParallel) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } return groupBy(collection, key, Collectors.mapping(v -> Opt.ofNullable(v).map(value).orElse(null), Collectors.toList()), isParallel); } @@ -254,7 +254,7 @@ public class CollStreamUtil { */ public static Map groupBy(Collection collection, Function key, Collector downstream) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } return groupBy(collection, key, downstream, false); } @@ -275,7 +275,7 @@ public class CollStreamUtil { */ public static Map groupBy(Collection collection, Function key, Collector downstream, boolean isParallel) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } return StreamUtil.of(collection, isParallel).collect(CollectorUtil.groupingBy(key, downstream)); } @@ -307,7 +307,7 @@ public class CollStreamUtil { */ public static List toList(Collection collection, Function function, boolean isParallel) { if (CollUtil.isEmpty(collection)) { - return Collections.emptyList(); + return CollUtil.newArrayList(); } return StreamUtil.of(collection, isParallel) .map(function) @@ -342,7 +342,7 @@ public class CollStreamUtil { */ public static Set toSet(Collection collection, Function function, boolean isParallel) { if (CollUtil.isEmpty(collection)) { - return Collections.emptySet(); + return CollUtil.newHashSet(); } return StreamUtil.of(collection, isParallel) .map(function) @@ -365,11 +365,11 @@ public class CollStreamUtil { */ public static Map merge(Map map1, Map map2, BiFunction merge) { if (MapUtil.isEmpty(map1) && MapUtil.isEmpty(map2)) { - return Collections.emptyMap(); + return MapUtil.newHashMap(0); } else if (MapUtil.isEmpty(map1)) { - map1 = Collections.emptyMap(); + map1 = MapUtil.newHashMap(0); } else if (MapUtil.isEmpty(map2)) { - map2 = Collections.emptyMap(); + map2 = MapUtil.newHashMap(0); } Set key = new HashSet<>(); key.addAll(map1.keySet()); @@ -385,4 +385,5 @@ public class CollStreamUtil { } return map; } + }