changeset 9552:99012c58e718

Comparator comparing API renaming
author henryjen
date Wed, 21 Aug 2013 20:41:35 -0700
parents 190f250c7163
children 7bb72727c1ad
files src/share/classes/java/util/Comparator.java test/java/util/Comparator/BasicTest.java test/java/util/List/ExtensionsTest.java test/java/util/List/SortAndReplaceAllTest.java test/java/util/Map/EntryComparators.java test/java/util/function/BinaryOperator/BasicTest.java test/java/util/stream/Stream/StringBuilderStreamTest.java
diffstat 7 files changed, 53 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/java/util/Comparator.java	Wed Aug 21 15:52:32 2013 -0700
+++ b/src/share/classes/java/util/Comparator.java	Wed Aug 21 20:41:35 2013 -0700
@@ -199,7 +199,7 @@
      * composed using following code,
      *
      * <pre>{@code
-     *     Comparator<String> cmp = Comparator.comparing(String::length)
+     *     Comparator<String> cmp = Comparator.comparingInt(String::length)
      *             .thenComparing(String.CASE_INSENSITIVE_ORDER);
      * }</pre>
      *
@@ -270,18 +270,18 @@
      * extracts a {@code int} sort key.
      *
      * @implSpec This default implementation behaves as if {@code
-     *           thenComparing(comparing(keyExtractor))}.
+     *           thenComparing(comparingInt(keyExtractor))}.
      *
      * @param  keyExtractor the function used to extract the integer sort key
      * @return a lexicographic-order comparator composed of this and then the
      *         {@code int} sort key
      * @throws NullPointerException if the argument is null.
-     * @see #comparing(ToIntFunction)
+     * @see #comparingInt(ToIntFunction)
      * @see #thenComparing(Comparator)
      * @since 1.8
      */
-    default Comparator<T> thenComparing(ToIntFunction<? super T> keyExtractor) {
-        return thenComparing(comparing(keyExtractor));
+    default Comparator<T> thenComparingInt(ToIntFunction<? super T> keyExtractor) {
+        return thenComparing(comparingInt(keyExtractor));
     }
 
     /**
@@ -289,18 +289,18 @@
      * extracts a {@code long} sort key.
      *
      * @implSpec This default implementation behaves as if {@code
-     *           thenComparing(comparing(keyExtractor))}.
+     *           thenComparing(comparingLong(keyExtractor))}.
      *
      * @param  keyExtractor the function used to extract the long sort key
      * @return a lexicographic-order comparator composed of this and then the
      *         {@code long} sort key
      * @throws NullPointerException if the argument is null.
-     * @see #comparing(ToLongFunction)
+     * @see #comparingLong(ToLongFunction)
      * @see #thenComparing(Comparator)
      * @since 1.8
      */
-    default Comparator<T> thenComparing(ToLongFunction<? super T> keyExtractor) {
-        return thenComparing(comparing(keyExtractor));
+    default Comparator<T> thenComparingLong(ToLongFunction<? super T> keyExtractor) {
+        return thenComparing(comparingLong(keyExtractor));
     }
 
     /**
@@ -308,18 +308,18 @@
      * extracts a {@code double} sort key.
      *
      * @implSpec This default implementation behaves as if {@code
-     *           thenComparing(comparing(keyExtractor))}.
+     *           thenComparing(comparingDouble(keyExtractor))}.
      *
      * @param  keyExtractor the function used to extract the double sort key
      * @return a lexicographic-order comparator composed of this and then the
      *         {@code double} sort key
      * @throws NullPointerException if the argument is null.
-     * @see #comparing(ToDoubleFunction)
+     * @see #comparingDouble(ToDoubleFunction)
      * @see #thenComparing(Comparator)
      * @since 1.8
      */
-    default Comparator<T> thenComparing(ToDoubleFunction<? super T> keyExtractor) {
-        return thenComparing(comparing(keyExtractor));
+    default Comparator<T> thenComparingDouble(ToDoubleFunction<? super T> keyExtractor) {
+        return thenComparing(comparingDouble(keyExtractor));
     }
 
     /**
@@ -484,7 +484,7 @@
      * @throws NullPointerException if the argument is null
      * @since 1.8
      */
-    public static <T> Comparator<T> comparing(ToIntFunction<? super T> keyExtractor) {
+    public static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor) {
         Objects.requireNonNull(keyExtractor);
         return (Comparator<T> & Serializable)
             (c1, c2) -> Integer.compare(keyExtractor.applyAsInt(c1), keyExtractor.applyAsInt(c2));
@@ -505,7 +505,7 @@
      * @throws NullPointerException if the argument is null
      * @since 1.8
      */
-    public static <T> Comparator<T> comparing(ToLongFunction<? super T> keyExtractor) {
+    public static <T> Comparator<T> comparingLong(ToLongFunction<? super T> keyExtractor) {
         Objects.requireNonNull(keyExtractor);
         return (Comparator<T> & Serializable)
             (c1, c2) -> Long.compare(keyExtractor.applyAsLong(c1), keyExtractor.applyAsLong(c2));
@@ -526,7 +526,7 @@
      * @throws NullPointerException if the argument is null
      * @since 1.8
      */
-    public static<T> Comparator<T> comparing(ToDoubleFunction<? super T> keyExtractor) {
+    public static<T> Comparator<T> comparingDouble(ToDoubleFunction<? super T> keyExtractor) {
         Objects.requireNonNull(keyExtractor);
         return (Comparator<T> & Serializable)
             (c1, c2) -> Double.compare(keyExtractor.applyAsDouble(c1), keyExtractor.applyAsDouble(c2));
--- a/test/java/util/Comparator/BasicTest.java	Wed Aug 21 15:52:32 2013 -0700
+++ b/test/java/util/Comparator/BasicTest.java	Wed Aug 21 20:41:35 2013 -0700
@@ -90,7 +90,7 @@
         Thing[] things = new Thing[intValues.length];
         for (int i=0; i<intValues.length; i++)
             things[i] = new Thing(intValues[i], 0L, 0.0, null);
-        Comparator<Thing> comp = Comparator.comparing(new ToIntFunction<Thing>() {
+        Comparator<Thing> comp = Comparator.comparingInt(new ToIntFunction<Thing>() {
             @Override
             public int applyAsInt(Thing thing) {
                 return thing.getIntField();
@@ -104,7 +104,7 @@
         Thing[] things = new Thing[longValues.length];
         for (int i=0; i<longValues.length; i++)
             things[i] = new Thing(0, longValues[i], 0.0, null);
-        Comparator<Thing> comp = Comparator.comparing(new ToLongFunction<Thing>() {
+        Comparator<Thing> comp = Comparator.comparingLong(new ToLongFunction<Thing>() {
             @Override
             public long applyAsLong(Thing thing) {
                 return thing.getLongField();
@@ -118,7 +118,7 @@
         Thing[] things = new Thing[doubleValues.length];
         for (int i=0; i<doubleValues.length; i++)
             things[i] = new Thing(0, 0L, doubleValues[i], null);
-        Comparator<Thing> comp = Comparator.comparing(new ToDoubleFunction<Thing>() {
+        Comparator<Thing> comp = Comparator.comparingDouble(new ToDoubleFunction<Thing>() {
             @Override
             public double applyAsDouble(Thing thing) {
                 return thing.getDoubleField();
@@ -222,14 +222,14 @@
         assertComparison(cmp.thenComparing(People::getLastName), people[0], people[1]);
         assertComparison(cmp.thenComparing(People::getLastName), people[4], people[0]);
         // thenComparing(ToIntFunction)
-        assertComparison(cmp.thenComparing(People::getAge), people[0], people[1]);
-        assertComparison(cmp.thenComparing(People::getAge), people[1], people[5]);
+        assertComparison(cmp.thenComparingInt(People::getAge), people[0], people[1]);
+        assertComparison(cmp.thenComparingInt(People::getAge), people[1], people[5]);
         // thenComparing(ToLongFunction)
-        assertComparison(cmp.thenComparing(People::getAgeAsLong), people[0], people[1]);
-        assertComparison(cmp.thenComparing(People::getAgeAsLong), people[1], people[5]);
+        assertComparison(cmp.thenComparingLong(People::getAgeAsLong), people[0], people[1]);
+        assertComparison(cmp.thenComparingLong(People::getAgeAsLong), people[1], people[5]);
         // thenComparing(ToDoubleFunction)
-        assertComparison(cmp.thenComparing(People::getAgeAsDouble), people[0], people[1]);
-        assertComparison(cmp.thenComparing(People::getAgeAsDouble), people[1], people[5]);
+        assertComparison(cmp.thenComparingDouble(People::getAgeAsDouble), people[0], people[1]);
+        assertComparison(cmp.thenComparingDouble(People::getAgeAsDouble), people[1], people[5]);
     }
 
 
@@ -243,7 +243,7 @@
         assertComparison(cmp, people[7], people[6]);
 
         // More than one thenComparing
-        strcmp = Comparator.nullsFirst(Comparator.comparing(String::length)
+        strcmp = Comparator.nullsFirst(Comparator.comparingInt(String::length)
                                                  .thenComparing(String.CASE_INSENSITIVE_ORDER));
         assertComparison(strcmp, null, "abc");
         assertComparison(strcmp, "ab", "abc");
@@ -281,7 +281,7 @@
         assertComparison(cmp, people[7], people[6]);
 
         // More than one thenComparing
-        strcmp = Comparator.nullsLast(Comparator.comparing(String::length)
+        strcmp = Comparator.nullsLast(Comparator.comparingInt(String::length)
                                                 .thenComparing(String.CASE_INSENSITIVE_ORDER));
         assertComparison(strcmp, "abc", null);
         assertComparison(strcmp, "ab", "abc");
@@ -341,7 +341,7 @@
         } catch (NullPointerException npe) {}
 
         try {
-            Comparator<People> cmp = Comparator.comparing((Function<People, String>) null, Comparator.<String>naturalOrder());
+            Comparator<People> cmp = Comparator.comparing(null, Comparator.<String>naturalOrder());
             fail("comparing(null, cmp) should throw NPE");
         } catch (NullPointerException npe) {}
         try {
@@ -350,19 +350,19 @@
         } catch (NullPointerException npe) {}
 
         try {
-            Comparator<People> cmp = Comparator.comparing((Function<People, String>) null);
+            Comparator<People> cmp = Comparator.comparing(null);
             fail("comparing(null) should throw NPE");
         } catch (NullPointerException npe) {}
         try {
-            Comparator<People> cmp = Comparator.comparing((ToIntFunction<People>) null);
+            Comparator<People> cmp = Comparator.comparingInt(null);
             fail("comparing(null) should throw NPE");
         } catch (NullPointerException npe) {}
         try {
-            Comparator<People> cmp = Comparator.comparing((ToLongFunction<People>) null);
+            Comparator<People> cmp = Comparator.comparingLong(null);
             fail("comparing(null) should throw NPE");
         } catch (NullPointerException npe) {}
         try {
-            Comparator<People> cmp = Comparator.comparing((ToDoubleFunction<People>) null);
+            Comparator<People> cmp = Comparator.comparingDouble(null);
             fail("comparing(null) should throw NPE");
         } catch (NullPointerException npe) {}
     }
--- a/test/java/util/List/ExtensionsTest.java	Wed Aug 21 15:52:32 2013 -0700
+++ b/test/java/util/List/ExtensionsTest.java	Wed Aug 21 20:41:35 2013 -0700
@@ -125,8 +125,8 @@
     public void testSort() throws Exception{
         Comparator[] cs = { Comparator.<Integer>naturalOrder(),
             Comparator.<Integer>reverseOrder(),
-            Comparator.comparing(LambdaUtilities.highestPosValueIntFunction() ),
-            Comparator.comparing(LambdaUtilities.lowestPosValueIntFunction() ),
+            Comparator.comparingInt(LambdaUtilities.highestPosValueIntFunction() ),
+            Comparator.comparingInt(LambdaUtilities.lowestPosValueIntFunction() ),
         };
 
         Iterator<Comparator> csit = Arrays.stream(cs).iterator();
--- a/test/java/util/List/SortAndReplaceAllTest.java	Wed Aug 21 15:52:32 2013 -0700
+++ b/test/java/util/List/SortAndReplaceAllTest.java	Wed Aug 21 20:41:35 2013 -0700
@@ -139,8 +139,8 @@
         final Function<Integer, String> i2s = i -> String.valueOf(i);
         Comparator[] cs = { Comparator.<Integer>naturalOrder(),
             Comparator.<Integer>reverseOrder(),
-            Comparator.comparing(LambdaUtilities.highestPosValueIntFunction()),
-            Comparator.comparing(LambdaUtilities.lowestPosValueIntFunction()),
+            Comparator.comparingInt(LambdaUtilities.highestPosValueIntFunction()),
+            Comparator.comparingInt(LambdaUtilities.lowestPosValueIntFunction()),
             Comparator.comparing(i2s, Comparator.<String>naturalOrder()),
             Comparator.comparing(i2s, Comparator.<String>reverseOrder()),
         };
--- a/test/java/util/Map/EntryComparators.java	Wed Aug 21 15:52:32 2013 -0700
+++ b/test/java/util/Map/EntryComparators.java	Wed Aug 21 20:41:35 2013 -0700
@@ -115,8 +115,8 @@
         // Comparator<People> cmp = Comparator.naturalOrder(); // Should fail to compiler as People is not comparable
         // We can use simple comparator, but those have been tested above.
         // Thus choose to do compose for some level of interation.
-        Comparator<People> cmp1 = Comparator.comparing((Function<People, String>) People::getFirstName);
-        Comparator<People> cmp2 = Comparator.comparing((Function<People, String>) People::getLastName);
+        Comparator<People> cmp1 = Comparator.comparing(People::getFirstName);
+        Comparator<People> cmp2 = Comparator.comparing(People::getLastName);
         Comparator<People> cmp = cmp1.thenComparing(cmp2);
 
         assertPairComparison(people[0], people[0], people[1], people[1],
--- a/test/java/util/function/BinaryOperator/BasicTest.java	Wed Aug 21 15:52:32 2013 -0700
+++ b/test/java/util/function/BinaryOperator/BasicTest.java	Wed Aug 21 20:41:35 2013 -0700
@@ -67,26 +67,26 @@
     };
 
     public void testMaxBy() {
-        Comparator<People> cmp = Comparator.comparing((Function<People, String>) People::getFirstName);
+        Comparator<People> cmp = Comparator.comparing(People::getFirstName);
         // lesser
         assertSame(maxBy(cmp).apply(people[0], people[1]), people[1]);
         // euqal
-        cmp = Comparator.comparing((Function<People, String>) People::getLastName);
+        cmp = Comparator.comparing(People::getLastName);
         assertSame(maxBy(cmp).apply(people[0], people[1]), people[0]);
         // greater
-        cmp = Comparator.comparing((ToIntFunction<People>) People::getAge);
+        cmp = Comparator.comparingInt(People::getAge);
         assertSame(maxBy(cmp).apply(people[0], people[1]), people[0]);
     }
 
-    public void testLesserOf() {
-        Comparator<People> cmp = Comparator.comparing((Function<People, String>) People::getFirstName);
+    public void testMinBy() {
+        Comparator<People> cmp = Comparator.comparing(People::getFirstName);
         // lesser
         assertSame(minBy(cmp).apply(people[0], people[1]), people[0]);
         // euqal
-        cmp = Comparator.comparing((Function<People, String>) People::getLastName);
+        cmp = Comparator.comparing(People::getLastName);
         assertSame(minBy(cmp).apply(people[0], people[1]), people[0]);
         // greater
-        cmp = Comparator.comparing((ToIntFunction<People>) People::getAge);
+        cmp = Comparator.comparingInt(People::getAge);
         assertSame(minBy(cmp).apply(people[0], people[1]), people[1]);
     }
 
--- a/test/java/util/stream/Stream/StringBuilderStreamTest.java	Wed Aug 21 15:52:32 2013 -0700
+++ b/test/java/util/stream/Stream/StringBuilderStreamTest.java	Wed Aug 21 20:41:35 2013 -0700
@@ -47,16 +47,14 @@
 
 public class StringBuilderStreamTest<T extends Collection<StringBuilder>> extends
             GenericStreamTest<StringBuilder, Collection<StringBuilder>> {
-    public StringBuilderStreamTest(Class clazz, 
+    public StringBuilderStreamTest(Class clazz,
             ParallelType parallelType, int initSize) {
-        super(clazz, parallelType, Comparator.comparing((Function<StringBuilder,
-                String>)StringBuilder::toString), initSize);
+        super(clazz, parallelType, Comparator.comparing(StringBuilder::toString), initSize);
     }
 
-    public StringBuilderStreamTest(Class clazz, 
+    public StringBuilderStreamTest(Class clazz,
             ParallelType parallelType) {
-        super(clazz, parallelType, Comparator.comparing((Function<StringBuilder,
-                String>)StringBuilder::toString));
+        super(clazz, parallelType, Comparator.comparing(StringBuilder::toString));
     }
 
     @Factory
@@ -93,7 +91,7 @@
             streamFor(col).sorted().findFirst();
             System.out.println(col.size());
     }
-   
+
     @Override
     protected Object[] predicateAndDesc(int size){
         LambdaUtilities.CharType charType = Arrays.stream(LambdaUtilities.CharType.values()).findAny().get();
@@ -117,7 +115,7 @@
             {(BinaryOperator<StringBuilder>)StringBuilder::append, "StringBuilder::append", false},
             {LambdaUtilities.maxGenericBinaryOperator(naturalOrderComparator), "(t1, t2) -> t1 < t2 ? t2 : t1", true},
             {LambdaUtilities.minGenericBinaryOperator(naturalOrderComparator), " (t1, t2) -> t1 < t2 ? t1 : t2", true},
-        }; 
+        };
     }
 
     //Function<U, ? extends Comparable>, descrption for Function<? extends Comparable>
@@ -127,14 +125,14 @@
             {(Function<StringBuilder, String>)StringBuilder::toString, "StringBuilder::toString"},
         };
     }
-   
+
     @Override
     protected Collection<StringBuilder> generate(int size) {
         Collection<StringBuilder> col = createEmptyCollection();
         IntStream.range(0, size).mapToObj(i -> new StringBuilder().append(i) ).forEach(sb -> col.add(sb));
         return col;
     }
-    
+
     @Override
     protected StringBuilder[] bases(int size){
         return new StringBuilder[]{new StringBuilder(), new StringBuilder(rand.nextInt(size)), new StringBuilder(size)};