Java Code Examples for java.util.stream.Collector#Characteristics
The following examples show how to use
java.util.stream.Collector#Characteristics .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MapUtils.java From BungeeChat2 with GNU General Public License v3.0 | 5 votes |
/** * A variant of {@link Collectors#toMap(Function, Function)} for immutable maps. * * <p>Note this variant throws {@link IllegalArgumentException} upon duplicate keys, rather than * {@link IllegalStateException} * * @param <T> type of the input elements * @param <K> output type of the key mapping function * @param <V> output type of the value mapping function * @param keyMapper a mapping function to produce keys * @param valueMapper a mapping function to produce values * @return a {@code Collector} which collects elements into a {@code Map} whose keys and values * are the result of applying mapping functions to the input elements * @throws IllegalArgumentException upon duplicate keys */ public static <T, K, V> Collector<T, ImmutableMap.Builder<K, V>, ImmutableMap<K, V>> immutableMapCollector( Function<? super T, ? extends K> keyMapper, Function<? super T, ? extends V> valueMapper) throws IllegalArgumentException { return new Collector<T, ImmutableMap.Builder<K, V>, ImmutableMap<K, V>>() { public Supplier<ImmutableMap.Builder<K, V>> supplier() { return ImmutableMap.Builder<K, V>::new; } public BiConsumer<ImmutableMap.Builder<K, V>, T> accumulator() { return (builder, element) -> { K key = keyMapper.apply(element); V value = valueMapper.apply(element); builder.put(key, value); }; } public BinaryOperator<ImmutableMap.Builder<K, V>> combiner() { return (builder1, builder2) -> { builder1.putAll(builder2.build()); return builder1; }; } public Function<ImmutableMap.Builder<K, V>, ImmutableMap<K, V>> finisher() { return ImmutableMap.Builder<K, V>::build; } public Set<Collector.Characteristics> characteristics() { return ImmutableSet.of(); } }; }
Example 2
Source File: MoreCollectors.java From mill with MIT License | 4 votes |
private static Collector.Characteristics[] setToArray(Set<Collector.Characteristics> characteristics) { return characteristics.toArray(new Collector.Characteristics[characteristics.size()]); }
Example 3
Source File: EvaluationResult.java From inception with Apache License 2.0 | 4 votes |
@Override public Set<Collector.Characteristics> characteristics() { return Collections.emptySet(); }
Example 4
Source File: MoreCollectors.java From mill with MIT License | 4 votes |
private static Collector.Characteristics[] setToArray(Set<Collector.Characteristics> characteristics) { return characteristics.toArray(new Collector.Characteristics[characteristics.size()]); }
Example 5
Source File: Collectors.java From ProjectAres with GNU Affero General Public License v3.0 | 4 votes |
@Override public Set<Collector.Characteristics> characteristics() { return emptySet(); }
Example 6
Source File: Filter.java From vind with Apache License 2.0 | 4 votes |
@Override public Set<Collector.Characteristics> characteristics() { return EnumSet.of(Collector.Characteristics.UNORDERED); }
Example 7
Source File: AggregationPlan.java From Mycat2 with GNU General Public License v3.0 | 4 votes |
public Map<AggregationKey, AggregationGroup> groupBy(Scanner scan, int[] groupedFieldsIndexes, String[] aggCallNames, String[] columnNames, List<List<Integer>> args, boolean concurrent) { EnumSet<Collector.Characteristics> characteristics = getCharacteristics(concurrent); Stream<DataAccessor> stream = scan.stream(); stream = concurrent ? stream.parallel() : stream; return stream.collect(new Collector<DataAccessor, Map<AggregationKey, AggregationGroup>, Map<AggregationKey, AggregationGroup>>() { @Override public Supplier<Map<AggregationKey, AggregationGroup>> supplier() { return () -> concurrent ? new ConcurrentHashMap<>() : new HashMap<>(); } @Override public BiConsumer<Map<AggregationKey, AggregationGroup>, DataAccessor> accumulator() { return new BiConsumer<Map<AggregationKey, AggregationGroup>, DataAccessor>() { private AggregationGroup createGroup(AggregationKey aggregationKey) { return AggregationGroup.of(aggCallNames, columnNames, args); } @Override public void accept(Map<AggregationKey, AggregationGroup> aggregationKeyAggregationGroupMap, DataAccessor dataAccessor) { AggregationKey key = AggregationKey.of(dataAccessor, groupedFieldsIndexes); AggregationGroup aggregationGroup = aggregationKeyAggregationGroupMap.computeIfAbsent(key, this::createGroup); for (final AggregationCallExp cc : aggregationGroup.getColumns()) { if (concurrent) { synchronized (cc) { cc.accept(dataAccessor); } } else { cc.accept(dataAccessor); } } } }; } @Override public BinaryOperator<Map<AggregationKey, AggregationGroup>> combiner() { return (m1, m2) -> { for (Map.Entry<AggregationKey, AggregationGroup> e : m2.entrySet()) m1.merge(e.getKey(), e.getValue(), AggregationGroup::merge); return m1; }; } @Override public Function<Map<AggregationKey, AggregationGroup>, Map<AggregationKey, AggregationGroup>> finisher() { return aggregationKeyAggregationGroupMap -> aggregationKeyAggregationGroupMap; } @Override public Set<Characteristics> characteristics() { return characteristics; } }); }
Example 8
Source File: AggregationPlan.java From Mycat2 with GNU General Public License v3.0 | 4 votes |
@NotNull public EnumSet<Collector.Characteristics> getCharacteristics(boolean concurrent) { return concurrent ? EnumSet.of(Collector.Characteristics.CONCURRENT, Collector.Characteristics.UNORDERED, Collector.Characteristics.IDENTITY_FINISH) : EnumSet.of(Collector.Characteristics.UNORDERED, Collector.Characteristics.IDENTITY_FINISH); }
Example 9
Source File: KeySetCollector.java From COSE-JAVA with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Override public Set<Collector.Characteristics> characteristics() { return Collections.emptySet(); }
Example 10
Source File: JsonUtils.java From flow with Apache License 2.0 | 4 votes |
@Override public Set<Collector.Characteristics> characteristics() { return arrayCollectorCharacteristics; }