Package org.codehaus.groovy.runtime

# Class NumberAwareComparator<T>

java.lang.Object
org.codehaus.groovy.runtime.NumberAwareComparator<T>

All Implemented Interfaces:
  `Serializable`, `Comparator<T>`

public class NumberAwareComparator<T> extends Object implements Comparator<T>, Serializable
Compares two objects using Groovy's friendly comparison algorithm, i.e. handles nulls gracefully (nul being less than everything else) and performs numeric type coercion if required.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NumberAwareComparator()`
  `NumberAwareComparator(boolean ignoreZeroSign)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `compare(T o1, T o2)`
  Compares two values using Groovy comparison semantics with numeric coercion.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface java.util.Comparator

  `equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

- ## Constructor Details

  - ### NumberAwareComparator

    public NumberAwareComparator()

  - ### NumberAwareComparator

    public NumberAwareComparator(boolean ignoreZeroSign)
    Since:
      3.0.8

- ## Method Details

  - ### compare

    public int compare(T o1, T o2)
    Compares two values using Groovy comparison semantics with numeric coercion.
    Specified by:
      `compare` in interface `Comparator<T>`
    Parameters:
      `o1` - the first value to compare
      `o2` - the second value to compare
    Returns:
      a negative integer, zero, or a positive integer if o1 is less than, equal to, or greater than o2 according to Groovy semantics