Uses of Interface java.util.Comparator (Java SE 12 & JDK 12 )

## Uses of Interface
java.util.Comparator

- Packages that use Comparator
  Package | Description
  --- | ---
  java.lang | Provides classes that are fundamental to the design of the Java programming language.
  java.text | Provides classes and interfaces for handling text, dates, numbers, and messages in a manner independent of natural languages.
  java.time | The main API for dates, times, instants, and durations.
  java.time.chrono | Generic API for calendar systems other than the default ISO.
  java.util | Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.
  java.util.concurrent | Utility classes commonly useful in concurrent programming.
  java.util.function | Functional interfaces provide target types for lambda expressions and method references.
  java.util.stream | Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections.
  javax.swing | Provides a set of "lightweight" (all-Java language) components that, to the maximum degree possible, work the same on all platforms.
  javax.swing.table | Provides classes and interfaces for dealing with `javax.swing.JTable`.

- - ### Uses of Comparator in java.lang

    Fields in java.lang declared as Comparator
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Comparator<String>` | String.`CASE_INSENSITIVE_ORDER` | A Comparator that orders `String` objects as by `compareToIgnoreCase`.

  - ### Uses of Comparator in java.text

    Classes in java.text that implement Comparator
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `Collator` | The `Collator` class performs locale-sensitive `String` comparison.
    `class` | `RuleBasedCollator` | The `RuleBasedCollator` class is a concrete subclass of `Collator` that provides a simple, data-driven, table collator.

  - ### Uses of Comparator in java.time

    Methods in java.time that return Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Comparator<OffsetDateTime>` | OffsetDateTime.`timeLineOrder()` | Gets a comparator that compares two `OffsetDateTime` instances based solely on the instant.

  - ### Uses of Comparator in java.time.chrono

    Methods in java.time.chrono that return Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static Comparator<ChronoLocalDate>` | ChronoLocalDate.`timeLineOrder()` | Gets a comparator that compares `ChronoLocalDate` in time-line order ignoring the chronology.
    `static Comparator<ChronoLocalDateTime<?>>` | ChronoLocalDateTime.`timeLineOrder()` | Gets a comparator that compares `ChronoLocalDateTime` in time-line order ignoring the chronology.
    `static Comparator<ChronoZonedDateTime<?>>` | ChronoZonedDateTime.`timeLineOrder()` | Gets a comparator that compares `ChronoZonedDateTime` in time-line order ignoring the chronology.

  - ### Uses of Comparator in java.util

    Methods in java.util that return Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `Comparator<? super E>` | PriorityQueue.`comparator()` | Returns the comparator used to order the elements in this queue, or `null` if this queue is sorted according to the natural ordering of its elements.
    `Comparator<? super K>` | SortedMap.`comparator()` | Returns the comparator used to order the keys in this map, or `null` if this map uses the natural ordering of its keys.
    `Comparator<? super E>` | SortedSet.`comparator()` | Returns the comparator used to order the elements in this set, or `null` if this set uses the natural ordering of its elements.
    `static <T,​U extends Comparable<? super U>> Comparator<T>` | Comparator.`comparing​(Function<? super T,​? extends U> keyExtractor)` | Accepts a function that extracts a `Comparable` sort key from a type `T`, and returns a `Comparator<T>` that compares by that sort key.
    `static <T,​U> Comparator<T>` | Comparator.`comparing​(Function<? super T,​? extends U> keyExtractor, Comparator<? super U> keyComparator)` | Accepts a function that extracts a sort key from a type `T`, and returns a `Comparator<T>` that compares by that sort key using the specified `Comparator`.
    `static <K extends Comparable<? super K>,​V> Comparator<Map.Entry<K,​V>>` | Map.Entry.`comparingByKey()` | Returns a comparator that compares `Map.Entry` in natural order on key.
    `static <K,​V> Comparator<Map.Entry<K,​V>>` | Map.Entry.`comparingByKey​(Comparator<? super K> cmp)` | Returns a comparator that compares `Map.Entry` by key using the given `Comparator`.
    `static <K,​V extends Comparable<? super V>> Comparator<Map.Entry<K,​V>>` | Map.Entry.`comparingByValue()` | Returns a comparator that compares `Map.Entry` in natural order on value.
    `static <K,​V> Comparator<Map.Entry<K,​V>>` | Map.Entry.`comparingByValue​(Comparator<? super V> cmp)` | Returns a comparator that compares `Map.Entry` by value using the given `Comparator`.
    `static <T> Comparator<T>` | Comparator.`comparingDouble​(ToDoubleFunction<? super T> keyExtractor)` | Accepts a function that extracts a `double` sort key from a type `T`, and returns a `Comparator<T>` that compares by that sort key.
    `static <T> Comparator<T>` | Comparator.`comparingInt​(ToIntFunction<? super T> keyExtractor)` | Accepts a function that extracts an `int` sort key from a type `T`, and returns a `Comparator<T>` that compares by that sort key.
    `static <T> Comparator<T>` | Comparator.`comparingLong​(ToLongFunction<? super T> keyExtractor)` | Accepts a function that extracts a `long` sort key from a type `T`, and returns a `Comparator<T>` that compares by that sort key.
    `default Comparator<? super T>` | Spliterator.`getComparator()` | If this Spliterator's source is `Spliterator.SORTED` by a `Comparator`, returns that `Comparator`.
    `static <T extends Comparable<? super T>> Comparator<T>` | Comparator.`naturalOrder()` | Returns a comparator that compares `Comparable` objects in natural order.
    `static <T> Comparator<T>` | Comparator.`nullsFirst​(Comparator<? super T> comparator)` | Returns a null-friendly comparator that considers `null` to be less than non-null.
    `static <T> Comparator<T>` | Comparator.`nullsLast​(Comparator<? super T> comparator)` | Returns a null-friendly comparator that considers `null` to be greater than non-null.
    `default Comparator<T>` | Comparator.`reversed()` | Returns a comparator that imposes the reverse ordering of this comparator.
    `static <T> Comparator<T>` | Collections.`reverseOrder()` | Returns a comparator that imposes the reverse of the natural ordering on a collection of objects that implement the `Comparable` interface.
    `static <T> Comparator<T>` | Collections.`reverseOrder​(Comparator<T> cmp)` | Returns a comparator that imposes the reverse ordering of the specified comparator.
    `static <T extends Comparable<? super T>> Comparator<T>` | Comparator.`reverseOrder()` | Returns a comparator that imposes the reverse of the natural ordering.
    `default Comparator<T>` | Comparator.`thenComparing​(Comparator<? super T> other)` | Returns a lexicographic-order comparator with another comparator.
    `default <U extends Comparable<? super U>> Comparator<T>` | Comparator.`thenComparing​(Function<? super T,​? extends U> keyExtractor)` | Returns a lexicographic-order comparator with a function that extracts a `Comparable` sort key.
    `default <U> Comparator<T>` | Comparator.`thenComparing​(Function<? super T,​? extends U> keyExtractor, Comparator<? super U> keyComparator)` | Returns a lexicographic-order comparator with a function that extracts a key to be compared with the given `Comparator`.
    `default Comparator<T>` | Comparator.`thenComparingDouble​(ToDoubleFunction<? super T> keyExtractor)` | Returns a lexicographic-order comparator with a function that extracts a `double` sort key.
    `default Comparator<T>` | Comparator.`thenComparingInt​(ToIntFunction<? super T> keyExtractor)` | Returns a lexicographic-order comparator with a function that extracts an `int` sort key.
    `default Comparator<T>` | Comparator.`thenComparingLong​(ToLongFunction<? super T> keyExtractor)` | Returns a lexicographic-order comparator with a function that extracts a `long` sort key.

    Methods in java.util with parameters of type Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T> int` | Arrays.`binarySearch​(T[] a, int fromIndex, int toIndex, T key, Comparator<? super T> c)` | Searches a range of the specified array for the specified object using the binary search algorithm.
    `static <T> int` | Arrays.`binarySearch​(T[] a, T key, Comparator<? super T> c)` | Searches the specified array for the specified object using the binary search algorithm.
    `static <T> int` | Collections.`binarySearch​(List<? extends T> list, T key, Comparator<? super T> c)` | Searches the specified list for the specified object using the binary search algorithm.
    `static <T> int` | Arrays.`compare​(T[] a, int aFromIndex, int aToIndex, T[] b, int bFromIndex, int bToIndex, Comparator<? super T> cmp)` | Compares two `Object` arrays lexicographically over the specified ranges.
    `static <T> int` | Arrays.`compare​(T[] a, T[] b, Comparator<? super T> cmp)` | Compares two `Object` arrays lexicographically using a specified comparator.
    `static <T> int` | Objects.`compare​(T a, T b, Comparator<? super T> c)` | Returns 0 if the arguments are identical and `c.compare(a, b)` otherwise.
    `static <T,​U> Comparator<T>` | Comparator.`comparing​(Function<? super T,​? extends U> keyExtractor, Comparator<? super U> keyComparator)` | Accepts a function that extracts a sort key from a type `T`, and returns a `Comparator<T>` that compares by that sort key using the specified `Comparator`.
    `static <K,​V> Comparator<Map.Entry<K,​V>>` | Map.Entry.`comparingByKey​(Comparator<? super K> cmp)` | Returns a comparator that compares `Map.Entry` by key using the given `Comparator`.
    `static <K,​V> Comparator<Map.Entry<K,​V>>` | Map.Entry.`comparingByValue​(Comparator<? super V> cmp)` | Returns a comparator that compares `Map.Entry` by value using the given `Comparator`.
    `static <T> boolean` | Arrays.`equals​(T[] a, int aFromIndex, int aToIndex, T[] b, int bFromIndex, int bToIndex, Comparator<? super T> cmp)` | Returns true if the two specified arrays of Objects, over the specified ranges, are equal to one another.
    `static <T> boolean` | Arrays.`equals​(T[] a, T[] a2, Comparator<? super T> cmp)` | Returns `true` if the two specified arrays of Objects are equal to one another.
    `static <T> T` | Collections.`max​(Collection<? extends T> coll, Comparator<? super T> comp)` | Returns the maximum element of the given collection, according to the order induced by the specified comparator.
    `static <T> T` | Collections.`min​(Collection<? extends T> coll, Comparator<? super T> comp)` | Returns the minimum element of the given collection, according to the order induced by the specified comparator.
    `static <T> int` | Arrays.`mismatch​(T[] a, int aFromIndex, int aToIndex, T[] b, int bFromIndex, int bToIndex, Comparator<? super T> cmp)` | Finds and returns the relative index of the first mismatch between two `Object` arrays over the specified ranges, otherwise return -1 if no mismatch is found.
    `static <T> int` | Arrays.`mismatch​(T[] a, T[] b, Comparator<? super T> cmp)` | Finds and returns the index of the first mismatch between two `Object` arrays, otherwise return -1 if no mismatch is found.
    `static <T> Comparator<T>` | Comparator.`nullsFirst​(Comparator<? super T> comparator)` | Returns a null-friendly comparator that considers `null` to be less than non-null.
    `static <T> Comparator<T>` | Comparator.`nullsLast​(Comparator<? super T> comparator)` | Returns a null-friendly comparator that considers `null` to be greater than non-null.
    `static <T> void` | Arrays.`parallelSort​(T[] a, int fromIndex, int toIndex, Comparator<? super T> cmp)` | Sorts the specified range of the specified array of objects according to the order induced by the specified comparator.
    `static <T> void` | Arrays.`parallelSort​(T[] a, Comparator<? super T> cmp)` | Sorts the specified array of objects according to the order induced by the specified comparator.
    `static <T> Comparator<T>` | Collections.`reverseOrder​(Comparator<T> cmp)` | Returns a comparator that imposes the reverse ordering of the specified comparator.
    `static <T> void` | Arrays.`sort​(T[] a, int fromIndex, int toIndex, Comparator<? super T> c)` | Sorts the specified range of the specified array of objects according to the order induced by the specified comparator.
    `static <T> void` | Arrays.`sort​(T[] a, Comparator<? super T> c)` | Sorts the specified array of objects according to the order induced by the specified comparator.
    `static <T> void` | Collections.`sort​(List<T> list, Comparator<? super T> c)` | Sorts the specified list according to the order induced by the specified comparator.
    `default void` | List.`sort​(Comparator<? super E> c)` | Sorts this list according to the order induced by the specified `Comparator`.
    `default Comparator<T>` | Comparator.`thenComparing​(Comparator<? super T> other)` | Returns a lexicographic-order comparator with another comparator.
    `default <U> Comparator<T>` | Comparator.`thenComparing​(Function<? super T,​? extends U> keyExtractor, Comparator<? super U> keyComparator)` | Returns a lexicographic-order comparator with a function that extracts a key to be compared with the given `Comparator`.

    Constructors in java.util with parameters of type Comparator
    Constructor | Description
    --- | ---
    `PriorityQueue​(int initialCapacity, Comparator<? super E> comparator)` | Creates a `PriorityQueue` with the specified initial capacity that orders its elements according to the specified comparator.
    `PriorityQueue​(Comparator<? super E> comparator)` | Creates a `PriorityQueue` with the default initial capacity and whose elements are ordered according to the specified comparator.
    `TreeMap​(Comparator<? super K> comparator)` | Constructs a new, empty tree map, ordered according to the given comparator.
    `TreeSet​(Comparator<? super E> comparator)` | Constructs a new, empty tree set, sorted according to the specified comparator.

  - ### Uses of Comparator in java.util.concurrent

    Methods in java.util.concurrent that return Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `Comparator<? super E>` | PriorityBlockingQueue.`comparator()` | Returns the comparator used to order the elements in this queue, or `null` if this queue uses the natural ordering of its elements.

    Constructors in java.util.concurrent with parameters of type Comparator
    Constructor | Description
    --- | ---
    `ConcurrentSkipListMap​(Comparator<? super K> comparator)` | Constructs a new, empty map, sorted according to the specified comparator.
    `ConcurrentSkipListSet​(Comparator<? super E> comparator)` | Constructs a new, empty set that orders its elements according to the specified comparator.
    `PriorityBlockingQueue​(int initialCapacity, Comparator<? super E> comparator)` | Creates a `PriorityBlockingQueue` with the specified initial capacity that orders its elements according to the specified comparator.

  - ### Uses of Comparator in java.util.function

    Methods in java.util.function with parameters of type Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T> BinaryOperator<T>` | BinaryOperator.`maxBy​(Comparator<? super T> comparator)` | Returns a `BinaryOperator` which returns the greater of two elements according to the specified `Comparator`.
    `static <T> BinaryOperator<T>` | BinaryOperator.`minBy​(Comparator<? super T> comparator)` | Returns a `BinaryOperator` which returns the lesser of two elements according to the specified `Comparator`.

  - ### Uses of Comparator in java.util.stream

    Methods in java.util.stream with parameters of type Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `Optional<T>` | Stream.`max​(Comparator<? super T> comparator)` | Returns the maximum element of this stream according to the provided `Comparator`.
    `static <T> Collector<T,​?,​Optional<T>>` | Collectors.`maxBy​(Comparator<? super T> comparator)` | Returns a `Collector` that produces the maximal element according to a given `Comparator`, described as an `Optional<T>`.
    `Optional<T>` | Stream.`min​(Comparator<? super T> comparator)` | Returns the minimum element of this stream according to the provided `Comparator`.
    `static <T> Collector<T,​?,​Optional<T>>` | Collectors.`minBy​(Comparator<? super T> comparator)` | Returns a `Collector` that produces the minimal element according to a given `Comparator`, described as an `Optional<T>`.
    `Stream<T>` | Stream.`sorted​(Comparator<? super T> comparator)` | Returns a stream consisting of the elements of this stream, sorted according to the provided `Comparator`.

  - ### Uses of Comparator in javax.swing

    Methods in javax.swing that return Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `Comparator<?>` | DefaultRowSorter.`getComparator​(int column)` | Returns the `Comparator` for the specified column.
    `protected Comparator<? super Component>` | SortingFocusTraversalPolicy.`getComparator()` | Returns the Comparator which will be used to sort the Components in a focus traversal cycle.

    Methods in javax.swing with parameters of type Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | DefaultRowSorter.`setComparator​(int column, Comparator<?> comparator)` | Sets the `Comparator` to use when sorting the specified column.
    `protected void` | SortingFocusTraversalPolicy.`setComparator​(Comparator<? super Component> comparator)` | Sets the Comparator which will be used to sort the Components in a focus traversal cycle.

    Constructors in javax.swing with parameters of type Comparator
    Constructor | Description
    --- | ---
    `SortingFocusTraversalPolicy​(Comparator<? super Component> comparator)` | Constructs a SortingFocusTraversalPolicy with the specified Comparator.

  - ### Uses of Comparator in javax.swing.table

    Methods in javax.swing.table that return Comparator
    Modifier and Type | Method | Description
    --- | --- | ---
    `Comparator<?>` | TableRowSorter.`getComparator​(int column)` | Returns the `Comparator` for the specified column.