Class GroupBy<K,​V>

  • Type Parameters:
    K - the Map key type
    V - the Map value type
    All Implemented Interfaces:
    Fn1<Fn1<? super V,​? extends K>,​Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>>, Fn2<Fn1<? super V,​? extends K>,​java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>, Applicative<Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<Fn1<? super V,​? extends K>,​?>>, Cartesian<Fn1<? super V,​? extends K>,​Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<?,​?>>, Cocartesian<Fn1<? super V,​? extends K>,​Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<?,​?>>, Contravariant<Fn1<? super V,​? extends K>,​Profunctor<?,​Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<?,​?>>>, Functor<Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<Fn1<? super V,​? extends K>,​?>>, Profunctor<Fn1<? super V,​? extends K>,​Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<?,​?>>, Monad<Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<Fn1<? super V,​? extends K>,​?>>, MonadReader<Fn1<? super V,​? extends K>,​Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<Fn1<? super V,​? extends K>,​?>>, MonadRec<Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<Fn1<? super V,​? extends K>,​?>>, MonadWriter<Fn1<? super V,​? extends K>,​Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>,​Fn1<Fn1<? super V,​? extends K>,​?>>

    public final class GroupBy<K,​V>
    extends java.lang.Object
    implements Fn2<Fn1<? super V,​? extends K>,​java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>
    Given an Iterable<V> vs and a key function V -> K f, fold vs into a Map<K, List<V>> by applying f to each element of vs, retaining values that map to the same key in a list, in the order they were iterated in.
    See Also:
    InGroupsOf
    • Field Detail

      • INSTANCE

        private static final GroupBy<?,​?> INSTANCE
    • Constructor Detail

      • GroupBy

        private GroupBy()
    • Method Detail

      • checkedApply

        public java.util.Map<K,​java.util.List<V>> checkedApply​(Fn1<? super V,​? extends K> keyFn,
                                                                     java.lang.Iterable<V> vs)
        Specified by:
        checkedApply in interface Fn2<Fn1<? super V,​? extends K>,​java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>>
      • groupBy

        public static <K,​V> GroupBy<K,​V> groupBy()
      • groupBy

        public static <K,​V> Fn1<java.lang.Iterable<V>,​java.util.Map<K,​java.util.List<V>>> groupBy​(Fn1<? super V,​? extends K> keyFn)
      • groupBy

        public static <K,​V> java.util.Map<K,​java.util.List<V>> groupBy​(Fn1<? super V,​? extends K> keyFn,
                                                                                   java.lang.Iterable<V> vs)