IterableX<T> extension

General utility extension on Iterable providing flat-mapping, grouping, and chunking capabilities.

on

Methods

chunked(int size) Iterable<List<T>>

Available on Iterable<T>, provided by the IterableX extension

Splits the iterable into chunks of size. The last chunk may be smaller.
distinctBy<K>(K keyOf(T)) Iterable<T>

Available on Iterable<T>, provided by the IterableX extension

Returns distinct elements by a derived key, preserving first-seen order.
flatMap<R>(Iterable<R> transform(T)) Iterable<R>

Available on Iterable<T>, provided by the IterableX extension

Maps each element to an iterable, then flattens one level.
flatMapNotNull<R extends Object>(Iterable<R?> transform(T)) Iterable<R>

Available on Iterable<T>, provided by the IterableX extension

flatMap that discards nulls from the produced iterables.
groupBy<K>(K keyOf(T)) Map<K, List<T>>

Available on Iterable<T>, provided by the IterableX extension

Groups elements by a key derived from keyOf.