/** * @see RichIterable#aggregateInPlaceBy(Function, Function0, Procedure2) */ public static <T, K, V> MutableMap<K, V> aggregateInPlaceBy( Iterable<T> iterable, Function<? super T, ? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V, ? super T> mutatingAggregator) { if (iterable instanceof MutableCollection) { return ((MutableCollection<T>) iterable).aggregateInPlaceBy(groupBy, zeroValueFactory, mutatingAggregator); } if (iterable instanceof ArrayList) { return ArrayListIterate.aggregateInPlaceBy((ArrayList<T>) iterable, groupBy, zeroValueFactory, mutatingAggregator); } if (iterable instanceof RandomAccess) { return RandomAccessListIterate.aggregateInPlaceBy((List<T>) iterable, groupBy, zeroValueFactory, mutatingAggregator); } if (iterable != null) { return IterableIterate.aggregateInPlaceBy(iterable, groupBy, zeroValueFactory, mutatingAggregator); } throw new IllegalArgumentException("Cannot perform an aggregateInPlaceBy on null"); }
/** * @see RichIterable#aggregateInPlaceBy(Function, Function0, Procedure2) */ public static <T, K, V> MutableMap<K, V> aggregateInPlaceBy( Iterable<T> iterable, Function<? super T, ? extends K> groupBy, Function0<? extends V> zeroValueFactory, Procedure2<? super V, ? super T> mutatingAggregator) { if (iterable instanceof MutableCollection) { return ((MutableCollection<T>) iterable).aggregateInPlaceBy(groupBy, zeroValueFactory, mutatingAggregator); } if (iterable instanceof ArrayList) { return ArrayListIterate.aggregateInPlaceBy((ArrayList<T>) iterable, groupBy, zeroValueFactory, mutatingAggregator); } if (iterable instanceof RandomAccess) { return RandomAccessListIterate.aggregateInPlaceBy((List<T>) iterable, groupBy, zeroValueFactory, mutatingAggregator); } if (iterable != null) { return IterableIterate.aggregateInPlaceBy(iterable, groupBy, zeroValueFactory, mutatingAggregator); } throw new IllegalArgumentException("Cannot perform an aggregateInPlaceBy on null"); }