mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
忘记加单参数分组重载了...失误失误
This commit is contained in:
parent
c9ad39ab3a
commit
238898e708
@ -8,12 +8,15 @@ import java.util.EnumSet;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.List;
|
||||||
import java.util.StringJoiner;
|
import java.util.StringJoiner;
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.BinaryOperator;
|
import java.util.function.BinaryOperator;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
import java.util.function.UnaryOperator;
|
||||||
import java.util.stream.Collector;
|
import java.util.stream.Collector;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 可变的汇聚操作{@link Collector} 相关工具封装
|
* 可变的汇聚操作{@link Collector} 相关工具封装
|
||||||
@ -111,8 +114,7 @@ public class CollectorUtil {
|
|||||||
if (downstream.characteristics().contains(Collector.Characteristics.IDENTITY_FINISH)) {
|
if (downstream.characteristics().contains(Collector.Characteristics.IDENTITY_FINISH)) {
|
||||||
return new SimpleCollector<>(mangledFactory, accumulator, merger, CH_ID);
|
return new SimpleCollector<>(mangledFactory, accumulator, merger, CH_ID);
|
||||||
} else {
|
} else {
|
||||||
@SuppressWarnings("unchecked")
|
UnaryOperator<A> downstreamFinisher = (UnaryOperator<A>) downstream.finisher();
|
||||||
Function<A, A> downstreamFinisher = (Function<A, A>) downstream.finisher();
|
|
||||||
Function<Map<K, A>, M> finisher = intermediate -> {
|
Function<Map<K, A>, M> finisher = intermediate -> {
|
||||||
intermediate.replaceAll((k, v) -> downstreamFinisher.apply(v));
|
intermediate.replaceAll((k, v) -> downstreamFinisher.apply(v));
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@ -140,6 +142,18 @@ public class CollectorUtil {
|
|||||||
return groupingBy(classifier, HashMap::new, downstream);
|
return groupingBy(classifier, HashMap::new, downstream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提供对null值友好的groupingBy操作的{@link Collector}实现
|
||||||
|
*
|
||||||
|
* @param classifier 分组依据
|
||||||
|
* @param <T> 实体类型
|
||||||
|
* @param <K> 实体中的分组依据对应类型,也是Map中key的类型
|
||||||
|
* @return {@link Collector}
|
||||||
|
*/
|
||||||
|
public static <T, K> Collector<T, ?, Map<K, List<T>>>
|
||||||
|
groupingBy(Function<? super T, ? extends K> classifier) {
|
||||||
|
return groupingBy(classifier, Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 对null友好的 toMap 操作的 {@link Collector}实现,默认使用HashMap
|
* 对null友好的 toMap 操作的 {@link Collector}实现,默认使用HashMap
|
||||||
|
Loading…
x
Reference in New Issue
Block a user