Skip to content

Instantly share code, notes, and snippets.

@Tzrlk
Last active August 9, 2018 05:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Tzrlk/538eab1616a2152892d2574837cf1bca to your computer and use it in GitHub Desktop.
Save Tzrlk/538eab1616a2152892d2574837cf1bca to your computer and use it in GitHub Desktop.
A function for splitting an iterable into multiple filtered iterables.
module ArrayUtils
def group(groupings)
return groupings.transform_values { |predicate| self.filter(predicate) }
end
end
public fun <T> Iterable<T>.group(groupings: Map<String, (T) -> Boolean>): Map<String, Iterable<T>>
= groupings.mapValues { ( _, predicate ) -> filter(predicate) }
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
public final class IterableUtils {
public static <T> Map<String, Iterable<T>> group(Iterable<T> input, Map<String, Predicate<T>> groupings) {
return Maps.transformValues(groupings, (predicate) -> Iterables.filter(input, predicate));
}
private IterableUtils() {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment