Class FloatComparators

java.lang.Object
com.github.tommyettinger.ds.support.sort.FloatComparators

public final class FloatComparators extends Object
A class providing static methods and objects that do useful things with comparators.
  • Field Details

    • NATURAL_COMPARATOR

      public static final FloatComparator NATURAL_COMPARATOR
    • OPPOSITE_COMPARATOR

      public static final FloatComparator OPPOSITE_COMPARATOR
    • TOLERANT_COMPARATOR

      public static final FloatComparator TOLERANT_COMPARATOR
      A FloatComparator using ascending order with a tolerance for equality of 0.000001.
  • Method Details

    • oppositeComparator

      public static FloatComparator oppositeComparator(FloatComparator c)
      Returns a comparator representing the opposite order of the given comparator.
      Parameters:
      c - a comparator.
      Returns:
      a comparator representing the opposite order of c.
    • asFloatComparator

      public static FloatComparator asFloatComparator(Comparator<? super Float> c)
      Returns a type-specific comparator that is equivalent to the given comparator.
      Parameters:
      c - a comparator, or null.
      Returns:
      a type-specific comparator representing the order of c.
    • tolerantComparator

      public static FloatComparator tolerantComparator(float tolerance)
      Builds a new FloatComparator, using ascending order with a tolerance for equality of tolerance. You can call its FloatComparator.reversed() method to access a descending-order comparator.
      Parameters:
      tolerance - how much tolerance is acceptable when comparing two floats as equal
      Returns:
      the new FloatComparator
    • sort

      public static void sort(float[] items, FloatComparator c)
      Sorts all of items by simply calling sort(float[], int, int, FloatComparator), setting from and to so the whole array is sorted.
      Parameters:
      items - the float array to be sorted
      c - a FloatComparator to alter the sort order; if null, the natural order will be used
    • sort

      public static void sort(float[] items, int from, int to, FloatComparator c)
      Sorts the specified range of elements according to the order induced by the specified comparator using mergesort.

      This sort is guaranteed to be stable: equal elements will not be reordered as a result of the sort. The sorting algorithm is an in-place mergesort that is significantly slower than a standard mergesort, as its running time is O(n (log n)2), but it does not allocate additional memory; as a result, it can be used as a generic sorting algorithm.

      If and only if c is null, this will delegate to Arrays.sort(float[], int, int), which does not have the same guarantees regarding allocation.

      Parameters:
      items - the float array to be sorted
      from - the index of the first element (inclusive) to be sorted.
      to - the index of the last element (exclusive) to be sorted.
      c - a FloatComparator to alter the sort order; if null, the natural order will be used