Class Comparators

java.lang.Object
com.landawn.abacus.util.Comparators
Direct Known Subclasses:
Fn

public abstract class Comparators extends Object
Factory utility class for Comparator.
Author:
haiyangl
  • Field Details

    • BOOLEAN_ARRAY_COMPARATOR

      public static final Comparator<boolean[]> BOOLEAN_ARRAY_COMPARATOR
    • CHAR_ARRAY_COMPARATOR

      public static final Comparator<char[]> CHAR_ARRAY_COMPARATOR
    • BYTE_ARRAY_COMPARATOR

      public static final Comparator<byte[]> BYTE_ARRAY_COMPARATOR
    • SHORT_ARRAY_COMPARATOR

      public static final Comparator<short[]> SHORT_ARRAY_COMPARATOR
    • INT_ARRAY_COMPARATOR

      public static final Comparator<int[]> INT_ARRAY_COMPARATOR
    • LONG_ARRAY_COMPARATOR

      public static final Comparator<long[]> LONG_ARRAY_COMPARATOR
    • FLOAT_ARRAY_COMPARATOR

      public static final Comparator<float[]> FLOAT_ARRAY_COMPARATOR
    • DOUBLE_ARRAY_COMPARATOR

      public static final Comparator<double[]> DOUBLE_ARRAY_COMPARATOR
    • OBJECT_ARRAY_COMPARATOR

      public static final Comparator<Object[]> OBJECT_ARRAY_COMPARATOR
    • COLLECTION_COMPARATOR

      public static final Comparator<Collection> COLLECTION_COMPARATOR
  • Method Details

    • naturalOrder

      public static <T extends Comparable> Comparator<T> naturalOrder()
      Same as nullsFirst
      Type Parameters:
      T -
      Returns:
      nullsFirst()
    • reversedOrder

      public static <T extends Comparable> Comparator<T> reversedOrder()
      Type Parameters:
      T -
      Returns:
    • reversedOrder

      public static <T> Comparator<T> reversedOrder(Comparator<T> cmp)
      Type Parameters:
      T -
      Parameters:
      cmp -
      Returns:
    • nullsFirst

      public static <T extends Comparable> Comparator<T> nullsFirst()
      Type Parameters:
      T -
      Returns:
    • nullsFirst

      public static <T> Comparator<T> nullsFirst(Comparator<T> cmp)
      Type Parameters:
      T -
      Parameters:
      cmp -
      Returns:
    • nullsFirstOrElseEqual

      @Beta public static <T> Comparator<T> nullsFirstOrElseEqual()
      Type Parameters:
      T -
      Returns:
    • nullsLast

      public static <T extends Comparable> Comparator<T> nullsLast()
      Type Parameters:
      T -
      Returns:
    • nullsLast

      public static <T> Comparator<T> nullsLast(Comparator<T> cmp)
      Type Parameters:
      T -
      Parameters:
      cmp -
      Returns:
    • nullsLastOrElseEqual

      @Beta public static <T> Comparator<T> nullsLastOrElseEqual()
      Type Parameters:
      T -
      Returns:
    • comparingBy

      public static <T, U extends Comparable<? super U>> Comparator<T> comparingBy(Function<? super T,? extends U> keyMapper)
      Type Parameters:
      T -
      U -
      Parameters:
      keyMapper -
      Returns:
    • comparingByIfNotNullOrElseNullsFirst

      @Beta public static <T, U extends Comparable<? super U>> Comparator<T> comparingByIfNotNullOrElseNullsFirst(Function<? super T,? extends U> keyMapper)
      Type Parameters:
      T -
      U -
      Parameters:
      keyMapper -
      Returns:
    • comparingByIfNotNullOrElseNullsLast

      @Beta public static <T, U extends Comparable<? super U>> Comparator<T> comparingByIfNotNullOrElseNullsLast(Function<? super T,? extends U> keyMapper)
      Type Parameters:
      T -
      U -
      Parameters:
      keyMapper -
      Returns:
    • reversedComparingBy

      public static <T, U extends Comparable<? super U>> Comparator<T> reversedComparingBy(Function<? super T,? extends U> keyMapper)
      Reversed comparing by.
      Type Parameters:
      T -
      U -
      Parameters:
      keyMapper -
      Returns:
    • reversedComparingByIfNotNullOrElseNullsFirst

      @Beta public static <T, U extends Comparable<? super U>> Comparator<T> reversedComparingByIfNotNullOrElseNullsFirst(Function<? super T,? extends U> keyMapper)
      Type Parameters:
      T -
      U -
      Parameters:
      keyMapper -
      Returns:
    • reversedComparingByIfNotNullOrElseNullsLast

      @Beta public static <T, U extends Comparable<? super U>> Comparator<T> reversedComparingByIfNotNullOrElseNullsLast(Function<? super T,? extends U> keyMapper)
      Type Parameters:
      T -
      U -
      Parameters:
      keyMapper -
      Returns:
    • comparingBy

      public static <T, U> Comparator<T> comparingBy(Function<? super T,? extends U> keyMapper, Comparator<? super U> keyComparator)
      Type Parameters:
      T -
      U -
      Parameters:
      keyMapper -
      keyComparator -
      Returns:
    • comparingBoolean

      public static <T> Comparator<T> comparingBoolean(ToBooleanFunction<? super T> keyMapper)
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingChar

      public static <T> Comparator<T> comparingChar(ToCharFunction<? super T> keyMapper)
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingByte

      public static <T> Comparator<T> comparingByte(ToByteFunction<? super T> keyMapper)
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingShort

      public static <T> Comparator<T> comparingShort(ToShortFunction<? super T> keyMapper)
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingInt

      public static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyMapper)
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingLong

      public static <T> Comparator<T> comparingLong(ToLongFunction<? super T> keyMapper)
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingFloat

      public static <T> Comparator<T> comparingFloat(ToFloatFunction<? super T> keyMapper)
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingDouble

      public static <T> Comparator<T> comparingDouble(ToDoubleFunction<? super T> keyMapper)
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingIgnoreCase

      public static Comparator<String> comparingIgnoreCase()
      Comparing ignore case.
      Returns:
    • comparingIgnoreCase

      public static <T> Comparator<T> comparingIgnoreCase(Function<? super T,String> keyMapper)
      Comparing ignore case.
      Type Parameters:
      T -
      Parameters:
      keyMapper -
      Returns:
    • comparingByKey

      public static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey()
      Comparing by key.
      Type Parameters:
      K - the key type
      V - the value type
      Returns:
    • reversedComparingByKey

      public static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> reversedComparingByKey()
      Reversed comparing by key.
      Type Parameters:
      K - the key type
      V - the value type
      Returns:
    • comparingByValue

      public static <K, V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> comparingByValue()
      Comparing by value.
      Type Parameters:
      K - the key type
      V - the value type
      Returns:
    • reversedComparingByValue

      public static <K, V extends Comparable<? super V>> Comparator<Map.Entry<K,V>> reversedComparingByValue()
      Reversed comparing by value.
      Type Parameters:
      K - the key type
      V - the value type
      Returns:
    • comparingByKey

      public static <K, V> Comparator<Map.Entry<K,V>> comparingByKey(Comparator<? super K> cmp)
      Comparing by key.
      Type Parameters:
      K - the key type
      V - the value type
      Parameters:
      cmp -
      Returns:
    • comparingByValue

      public static <K, V> Comparator<Map.Entry<K,V>> comparingByValue(Comparator<? super V> cmp)
      Comparing by value.
      Type Parameters:
      K - the key type
      V - the value type
      Parameters:
      cmp -
      Returns:
    • reversedComparingByKey

      @Beta public static <K, V> Comparator<Map.Entry<K,V>> reversedComparingByKey(Comparator<? super K> cmp)
      Reversed comparing by key.
      Type Parameters:
      K - the key type
      V - the value type
      Parameters:
      cmp -
      Returns:
    • reversedComparingByValue

      @Beta public static <K, V> Comparator<Map.Entry<K,V>> reversedComparingByValue(Comparator<? super V> cmp)
      Reversed comparing by value.
      Type Parameters:
      K - the key type
      V - the value type
      Parameters:
      cmp -
      Returns:
    • comparingByLength

      public static <T extends CharSequence> Comparator<T> comparingByLength()
      Comparing by length.
      Type Parameters:
      T -
      Returns:
    • comparingBySize

      public static <T extends Collection> Comparator<T> comparingBySize()
      Comparing by size.
      Type Parameters:
      T -
      Returns:
    • comparingByMapSize

      public static <T extends Map> Comparator<T> comparingByMapSize()
      Comparing by sizee.
      Type Parameters:
      T -
      Returns:
    • comparingArray

      public static <T> Comparator<T[]> comparingArray(Comparator<T> cmp)
    • comparingCollection

      public static <T, C extends Collection<T>> Comparator<C> comparingCollection(Comparator<T> cmp)