src/java.base/share/classes/java/util/Collections.java
changeset 48249 c21740de9431
parent 48059 6ee80cd217e0
child 48899 e9676e9ca3d6
equal deleted inserted replaced
48248:55b9b1e184c6 48249:c21740de9431
    22  * or visit www.oracle.com if you need additional information or have any
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    23  * questions.
    24  */
    24  */
    25 
    25 
    26 package java.util;
    26 package java.util;
       
    27 
       
    28 import java.io.IOException;
       
    29 import java.io.ObjectOutputStream;
    27 import java.io.Serializable;
    30 import java.io.Serializable;
    28 import java.io.ObjectOutputStream;
       
    29 import java.io.IOException;
       
    30 import java.lang.reflect.Array;
    31 import java.lang.reflect.Array;
    31 import java.util.function.BiConsumer;
    32 import java.util.function.BiConsumer;
    32 import java.util.function.BiFunction;
    33 import java.util.function.BiFunction;
    33 import java.util.function.Consumer;
    34 import java.util.function.Consumer;
    34 import java.util.function.Function;
    35 import java.util.function.Function;
  5162      * comparator or {@code null}
  5163      * comparator or {@code null}
  5163      * @return A comparator that imposes the reverse ordering of the
  5164      * @return A comparator that imposes the reverse ordering of the
  5164      *         specified comparator.
  5165      *         specified comparator.
  5165      * @since 1.5
  5166      * @since 1.5
  5166      */
  5167      */
       
  5168     @SuppressWarnings("unchecked")
  5167     public static <T> Comparator<T> reverseOrder(Comparator<T> cmp) {
  5169     public static <T> Comparator<T> reverseOrder(Comparator<T> cmp) {
  5168         if (cmp == null)
  5170         if (cmp == null) {
  5169             return reverseOrder();
  5171             return (Comparator<T>) ReverseComparator.REVERSE_ORDER;
  5170 
  5172         } else if (cmp == ReverseComparator.REVERSE_ORDER) {
  5171         if (cmp instanceof ReverseComparator2)
  5173             return (Comparator<T>) Comparators.NaturalOrderComparator.INSTANCE;
  5172             return ((ReverseComparator2<T>)cmp).cmp;
  5174         } else if (cmp == Comparators.NaturalOrderComparator.INSTANCE) {
  5173 
  5175             return (Comparator<T>) ReverseComparator.REVERSE_ORDER;
  5174         return new ReverseComparator2<>(cmp);
  5176         } else if (cmp instanceof ReverseComparator2) {
       
  5177             return ((ReverseComparator2<T>) cmp).cmp;
       
  5178         } else {
       
  5179             return new ReverseComparator2<>(cmp);
       
  5180         }
  5175     }
  5181     }
  5176 
  5182 
  5177     /**
  5183     /**
  5178      * @serial include
  5184      * @serial include
  5179      */
  5185      */