## Uses of Interface
java.util.Comparator

- Packages that use Comparator
  Package | Description
  --- | ---
  java.lang |
  java.util |
  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.

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

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

  - ### Uses of Comparator in java.util

    Methods in java.util that return Comparator
    Modifier and Type | Method and Description
    --- | ---
    `Comparator<? super E>` | TreeSet.`comparator()`
    `Comparator<? super K>` | TreeMap.`comparator()`
    `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.
    `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>` | 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.
    `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 extends Comparable<? super T>> Comparator<T>` | Comparator.`reverseOrder()` Returns a comparator that imposes the reverse of the natural ordering.
    `static <T> Comparator<T>` | Collections.`reverseOrder(Comparator<T> cmp)` Returns a comparator that imposes the reverse ordering of the specified comparator.
    `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 a `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 and Description
    --- | ---
    `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.`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` | 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> 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> 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, Comparator<? super T> cmp)` Sorts the specified array of objects according to the order induced by the specified comparator.
    `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> Comparator<T>` | Collections.`reverseOrder(Comparator<T> cmp)` Returns a comparator that imposes the reverse ordering of the specified comparator.
    `default void` | List.`sort(Comparator<? super E> c)` Sorts this list 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.
    `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` | 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.
    `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 and 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.
    `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 and 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.
    `Comparator<? super E>` | ConcurrentSkipListSet.`comparator()`
    `Comparator<? super K>` | ConcurrentSkipListMap.`comparator()`

    Constructors in java.util.concurrent with parameters of type Comparator
    Constructor and 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 and 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 and 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`.

Copyright © 2025 API Design. All Rights Reserved.