## org.springframework.util.comparator
Class NullSafeComparator<T>

    java.lang.Object
      org.springframework.util.comparator.NullSafeComparator<T>

All Implemented Interfaces:
  Comparator<T>

    public class NullSafeComparator<T>

extends Object
implements Comparator<T>

A Comparator that will safely compare nulls to be lower or higher than other objects. Can decorate a given Comparator or work on Comparables.

Since:
  1.2.2
Author:
  Keith Donald, Juergen Hoeller
See Also:
  `Comparable`

Field Summary
`static NullSafeComparator` `NULLS_HIGH` A shared default instance of this comparator, treating nulls higher than non-null objects.
`static NullSafeComparator` `NULLS_LOW` A shared default instance of this comparator, treating nulls lower than non-null objects.

Constructor Summary
`NullSafeComparator(Comparator<T> comparator, boolean nullsLow)` Create a NullSafeComparator that sorts `null` based on the provided flag, decorating the given Comparator.

Method Summary
`int` `compare(T o1, T o2)`
`boolean` `equals(Object obj)`
`int` `hashCode()`
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Field Detail

### NULLS_LOW

    public static final NullSafeComparator NULLS_LOW

  A shared default instance of this comparator, treating nulls lower than non-null objects.

### NULLS_HIGH

    public static final NullSafeComparator NULLS_HIGH

  A shared default instance of this comparator, treating nulls higher than non-null objects.

Constructor Detail

### NullSafeComparator

    public NullSafeComparator(Comparator<T> comparator,
                              boolean nullsLow)

  Create a NullSafeComparator that sorts `null` based on the provided flag, decorating the given Comparator.

  When comparing two non-null objects, the specified Comparator will be used. The given underlying Comparator must be able to handle the elements that this Comparator will be applied to.

  Parameters:
    `comparator` - the comparator to use when comparing two non-null objects
    `nullsLow` - whether to treat nulls lower or higher than non-null objects

Method Detail

### compare

    public int compare(T o1,
                       T o2)

  Specified by:
    `compare` in interface `Comparator<T>`

### equals

    public boolean equals(Object obj)

  Specified by:
    `equals` in interface `Comparator<T>`
  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `Object`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`