Reuse BinaryOperator.minBy/maxBy in Collectors.minBy/maxBy

Change-Id: I0e6e472b9e81445780a9b1580fbf13dab37d33fa
diff --git a/user/super/com/google/gwt/emul/java/util/stream/Collectors.java b/user/super/com/google/gwt/emul/java/util/stream/Collectors.java
index 43930ec..c19dfef 100644
--- a/user/super/com/google/gwt/emul/java/util/stream/Collectors.java
+++ b/user/super/com/google/gwt/emul/java/util/stream/Collectors.java
@@ -175,11 +175,11 @@
   }
 
   public static <T> Collector<T,?,Optional<T>> maxBy(Comparator<? super T> comparator) {
-    return minBy(comparator.reversed());
+    return reducing(BinaryOperator.maxBy(comparator));
   }
 
   public static <T> Collector<T,?,Optional<T>> minBy(final Comparator<? super T> comparator) {
-    return reducing((a, b) -> comparator.compare(a, b) < 0 ? a : b);
+    return reducing(BinaryOperator.minBy(comparator));
   }
 
   public static <T> Collector<T, ?, Map<Boolean, List<T>>> partitioningBy(