diff options
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/util')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/util/MammothLists.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/util/MammothLists.java b/src/main/java/org/zwobble/mammoth/util/MammothLists.java index 59f23f8..d6d1136 100644 --- a/src/main/java/org/zwobble/mammoth/util/MammothLists.java +++ b/src/main/java/org/zwobble/mammoth/util/MammothLists.java @@ -3,6 +3,7 @@ package org.zwobble.mammoth.util; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import com.google.common.collect.Ordering; import java.util.List; @@ -22,4 +23,12 @@ public class MammothLists { public static <T, R> List<R> eagerFlatMap(Iterable<T> iterable, Function<T, Iterable<R>> function) { return ImmutableList.copyOf(Iterables.concat(Iterables.transform(iterable, function))); } + + public static <T, R extends Comparable<R>> List<T> orderedBy(Iterable<T> iterable, Function<T, R> getKey) { + return orderBy(getKey).sortedCopy(iterable); + } + + private static <T, R extends Comparable<R>> Ordering<T> orderBy(Function<T, R> getKey) { + return Ordering.from((first, second) -> getKey.apply(first).compareTo(getKey.apply(second))); + } } |
