Я использую Java 8 lambdas и хочу использовать Collectors
toMap
, чтобы вернуть SortedMap
. Самое лучшее, что я могу придумать, - назвать следующее: Collectors
toMap
метод с манекеном mergeFunction
и mapSupplier
равен TreeMap::new
.Java 8 Collectors.toMap SortedMap
public static <T, K, U, M extends Map<K, U>>
Collector<T, ?, M> toMap(Function<? super T, ? extends K> keyMapper,
Function<? super T, ? extends U> valueMapper,
BinaryOperator<U> mergeFunction,
Supplier<M> mapSupplier) {
BiConsumer<M, T> accumulator = (map, element) -> map.merge(keyMapper.apply(element),
valueMapper.apply(element), mergeFunction);
return new CollectorImpl<>(mapSupplier, accumulator, mapMerger(mergeFunction), CH_ID);
}
Я не хочу, чтобы передать в функцию объединения, хотя, как я просто хочу throwingMerger()
, точно так же, как основной toMap
реализации следующим образом:
public static <T, K, U>
Collector<T, ?, Map<K, U>> toMap(Function<? super T, ? extends K> keyMapper,
Function<? super T, ? extends U> valueMapper) {
return toMap(keyMapper, valueMapper, throwingMerger(), HashMap::new);
}
Что бы быть лучшим практика использования Collectors
для возврата SortedMap
?
I есть * точно * это. –
Я собираюсь спуститься по обычным коллекционным маршрутам, так как я вижу похожие события, происходящие в будущем. –
Параметр, который вы обозначили 'k', не является * ключом *, как подразумевается в письме, а скорее первым значением бинарной операции для слияния. – antak