org.springframework.util.comparator

Class NullSafeComparator<T>

  • java.lang.Object
    • org.springframework.util.comparator.NullSafeComparator<T>
  • Type Parameters:
    T - the type of objects that may be compared by this comparator
    All Implemented Interfaces:
    java.util.Comparator<T>


    public class NullSafeComparator<T>
    extends java.lang.Object
    implements java.util.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

      Fields 
      Modifier and Type Field and Description
      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

      Constructors 
      Constructor and Description
      NullSafeComparator(java.util.Comparator<T> comparator, boolean nullsLow)
      Create a NullSafeComparator that sorts null based on the provided flag, decorating the given Comparator.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      int compare(T o1, T o2) 
      boolean equals(java.lang.Object other) 
      int hashCode() 
      java.lang.String toString() 
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

        comparing, comparing, comparingDouble, comparingInt, comparingLong, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Constructor Detail

      • NullSafeComparator

        public NullSafeComparator(java.util.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(@Nullable
                           T o1,
                           @Nullable
                           T o2)
        Specified by:
        compare in interface java.util.Comparator<T>
      • equals

        public boolean equals(java.lang.Object other)
        Specified by:
        equals in interface java.util.Comparator<T>
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object