/src/main/java/org/bitbucket/jdk7fun/Arrays2.java
https://bitbucket.org/blob79/jdk7fun · Java · 26 lines · 19 code · 7 blank · 0 comment · 0 complexity · 7f62ff105dffedd680da05ecb38e3793 MD5 · raw file
- package org.bitbucket.jdk7fun;
- import java.util.*;
- import com.google.common.collect.*;
- class Arrays2 {
- public static <T, U extends Comparable<? super U>> void sortBy(T[] array, Extractor<T, U> extractor) {
- sortBy(extractor).sort(array);
- }
- public static <T, U extends Comparable<? super U>> SortBuilder<T> sortBy(Extractor<T, U> extractor) {
- return new SortBuilder<T>().and(extractor);
- }
- public static class SortBuilder<T>{
- private Ordering<T> ordering = #{left, right -> 0};
-
- public <U extends Comparable<? super U>> SortBuilder<T> and(Extractor<T, U> extractor){
- ordering = ordering.compound(#{T left, T right -> extractor.get(left).compareTo(extractor.get(right))});
- return this;
- }
- public void sort(T[] array){ Arrays.sort(array, ordering); }
- }
- }