## org.apache.commons.collections.comparators
Class NullComparator

    java.lang.Object
      org.apache.commons.collections.comparators.NullComparator

All Implemented Interfaces:
  java.io.Serializable, java.util.Comparator

    public class NullComparator

extends java.lang.Object
implements java.util.Comparator, java.io.Serializable

A Comparator that will compare nulls to be either lower or higher than other objects.

Since:
  Commons Collections 2.0
Version:
  $Revision: 647116 $ $Date: 2008-04-11 12:23:08 +0100 (Fri, 11 Apr 2008) $
Author:
  Michael A. Smith
See Also:
  Serialized Form

Constructor Summary
`NullComparator()` Construct an instance that sorts `null` higher than any non-`null` object it is compared with.
`NullComparator(boolean nullsAreHigh)` Construct an instance that sorts `null` higher or lower than any non-`null` object it is compared with.
`NullComparator(java.util.Comparator nonNullComparator)` Construct an instance that sorts `null` higher than any non-`null` object it is compared with.
`NullComparator(java.util.Comparator nonNullComparator, boolean nullsAreHigh)` Construct an instance that sorts `null` higher or lower than any non-`null` object it is compared with.

Method Summary
`int` `compare(java.lang.Object o1, java.lang.Object o2)` Perform a comparison between two objects.
`boolean` `equals(java.lang.Object obj)` Determines whether the specified object represents a comparator that is equal to this comparator.
`int` `hashCode()` Implement a hash code for this comparator that is consistent with `equals(Object)`.

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

Constructor Detail

### NullComparator

    public NullComparator()

  Construct an instance that sorts `null` higher than any non-`null` object it is compared with. When comparing two non-`null` objects, the `ComparableComparator` is used.

### NullComparator

    public NullComparator(java.util.Comparator nonNullComparator)

  Construct an instance that sorts `null` higher than any non-`null` object it is compared with. When comparing two non-`null` objects, the specified `Comparator` is used.

  Parameters:
    `nonNullComparator` - the comparator to use when comparing two non-`null` objects. This argument cannot be `null`
  Throws:
    `java.lang.NullPointerException` - if `nonNullComparator` is `null`

### NullComparator

    public NullComparator(boolean nullsAreHigh)

  Construct an instance that sorts `null` higher or lower than any non-`null` object it is compared with. When comparing two non-`null` objects, the `ComparableComparator` is used.

  Parameters:
    `nullsAreHigh` - a `true` value indicates that `null` should be compared as higher than a non-`null` object. A `false` value indicates that `null` should be compared as lower than a non-`null` object.

### NullComparator

    public NullComparator(java.util.Comparator nonNullComparator,
                          boolean nullsAreHigh)

  Construct an instance that sorts `null` higher or lower than any non-`null` object it is compared with. When comparing two non-`null` objects, the specified `Comparator` is used.

  Parameters:
    `nonNullComparator` - the comparator to use when comparing two non-`null` objects. This argument cannot be `null`
    `nullsAreHigh` - a `true` value indicates that `null` should be compared as higher than a non-`null` object. A `false` value indicates that `null` should be compared as lower than a non-`null` object.
  Throws:
    `java.lang.NullPointerException` - if `nonNullComparator` is `null`

Method Detail

### compare

    public int compare(java.lang.Object o1,
                       java.lang.Object o2)

  Perform a comparison between two objects. If both objects are `null`, a `0` value is returned. If one object is `null` and the other is not, the result is determined on whether the Comparator was constructed to have nulls as higher or lower than other objects. If neither object is `null`, an underlying comparator specified in the constructor (or the default) is used to compare the non-`null` objects.

  Specified by:
    `compare` in interface `java.util.Comparator`
  Parameters:
    `o1` - the first object to compare
    `o2` - the object to compare it to.
  Returns:
    `-1` if `o1` is "lower" than (less than, before, etc.) `o2`; `1` if `o1` is "higher" than (greater than, after, etc.) `o2`; or `0` if `o1` and `o2` are equal.

### hashCode

    public int hashCode()

  Implement a hash code for this comparator that is consistent with `equals(Object)`.

  Overrides:
    `hashCode` in class `java.lang.Object`
  Returns:
    a hash code for this comparator.

### equals

    public boolean equals(java.lang.Object obj)

  Determines whether the specified object represents a comparator that is equal to this comparator.

  Specified by:
    `equals` in interface `java.util.Comparator`
  Overrides:
    `equals` in class `java.lang.Object`
  Parameters:
    `obj` - the object to compare this comparator with.
  Returns:
    `true` if the specified object is a NullComparator with equivalent `null` comparison behavior (i.e. `null` high or low) and with equivalent underlying non-`null` object comparators.

Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.