equal
deleted
inserted
replaced
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 */ |