org.apache.commons.collections.comparators

## Class BooleanComparator

- java.lang.Object
- - org.apache.commons.collections.comparators.BooleanComparator

- All Implemented Interfaces:
    Serializable, Comparator

      public final class BooleanComparator
      extends Object
      implements Comparator, Serializable

  A `Comparator` for `Boolean` objects that can sort either true or false first.

  Since:
    Commons Collections 3.0
  Version:
    $Revision: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
  Author:
    Rodney Waldhoff
  See Also:
    `getTrueFirstComparator()`, `getFalseFirstComparator()`, `getBooleanComparator(boolean)`, Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BooleanComparator()` Creates a `BooleanComparator` that sorts `false` values before `true` values.
    `BooleanComparator(boolean trueFirst)` Creates a `BooleanComparator` that sorts `trueFirst` values before `!trueFirst` values.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `compare(Boolean b1, Boolean b2)` Compares two non-`null` `Boolean` objects according to the value of `sortsTrueFirst()`.
    `int` | `compare(Object obj1, Object obj2)` Compares two arbitrary Objects.
    `boolean` | `equals(Object object)` Returns `true` iff that Object is is a `Comparator` whose ordering is known to be equivalent to mine.
    `static BooleanComparator` | `getBooleanComparator(boolean trueFirst)` Returns a BooleanComparator instance that sorts `trueFirst` values before `!trueFirst` values.
    `static BooleanComparator` | `getFalseFirstComparator()` Returns a BooleanComparator instance that sorts `false` values before `true` values.
    `static BooleanComparator` | `getTrueFirstComparator()` Returns a BooleanComparator instance that sorts `true` values before `false` values.
    `int` | `hashCode()` Implement a hash code for this comparator that is consistent with `equals`.
    `boolean` | `sortsTrueFirst()` Returns `true` iff I sort `true` values before `false` values.

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

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

- - ### Constructor Detail

    - #### BooleanComparator

          public BooleanComparator()

      Creates a `BooleanComparator` that sorts `false` values before `true` values.

      Equivalent to `BooleanComparator(false)`.

      Please use the static factory instead whenever possible.

    - #### BooleanComparator

          public BooleanComparator(boolean trueFirst)

      Creates a `BooleanComparator` that sorts `trueFirst` values before `!trueFirst` values.

      Please use the static factories instead whenever possible.

      Parameters:
        `trueFirst` - when `true`, sort `true` boolean values before `false`

  - ### Method Detail

    - #### getTrueFirstComparator

          public static BooleanComparator getTrueFirstComparator()

      Returns a BooleanComparator instance that sorts `true` values before `false` values.

      Clients are encouraged to use the value returned from this method instead of constructing a new instance to reduce allocation and garbage collection overhead when multiple BooleanComparators may be used in the same virtual machine.
      Returns:
        the true first singleton BooleanComparator

    - #### getFalseFirstComparator

          public static BooleanComparator getFalseFirstComparator()

      Returns a BooleanComparator instance that sorts `false` values before `true` values.

      Clients are encouraged to use the value returned from this method instead of constructing a new instance to reduce allocation and garbage collection overhead when multiple BooleanComparators may be used in the same virtual machine.
      Returns:
        the false first singleton BooleanComparator

    - #### getBooleanComparator

          public static BooleanComparator getBooleanComparator(boolean trueFirst)

      Returns a BooleanComparator instance that sorts `trueFirst` values before `!trueFirst` values.

      Clients are encouraged to use the value returned from this method instead of constructing a new instance to reduce allocation and garbage collection overhead when multiple BooleanComparators may be used in the same virtual machine.
      Parameters:
        `trueFirst` - when `true`, sort `true` `Boolean`s before `false`
      Returns:
        a singleton BooleanComparator instance

    - #### compare

          public int compare(Object obj1,
                    Object obj2)

      Compares two arbitrary Objects. When both arguments are `Boolean`, this method is equivalent to `compare((Boolean)obj1,(Boolean)obj2)`. When either argument is not a `Boolean`, this methods throws a `ClassCastException`.
      Specified by:
        `compare` in interface `Comparator`
      Parameters:
        `obj1` - the first object to compare
        `obj2` - the second object to compare
      Returns:
        negative if obj1 is less, positive if greater, zero if equal
      Throws:
        `ClassCastException` - when either argument is not `Boolean`

    - #### compare

          public int compare(Boolean b1,
                    Boolean b2)

      Compares two non-`null` `Boolean` objects according to the value of `sortsTrueFirst()`.
      Parameters:
        `b1` - the first boolean to compare
        `b2` - the second boolean to compare
      Returns:
        negative if obj1 is less, positive if greater, zero if equal
      Throws:
        `NullPointerException` - when either argument `null`

    - #### hashCode

          public int hashCode()

      Implement a hash code for this comparator that is consistent with `equals`.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        a hash code for this comparator.

    - #### equals

          public boolean equals(Object object)

      Returns `true` iff that Object is is a `Comparator` whose ordering is known to be equivalent to mine.

      This implementation returns `true` iff `that` is a `BooleanComparator` whose value of `sortsTrueFirst()` is equal to mine.

      Specified by:
        `equals` in interface `Comparator`
      Overrides:
        `equals` in class `Object`
      Parameters:
        `object` - the object to compare to
      Returns:
        true if equal

    - #### sortsTrueFirst

          public boolean sortsTrueFirst()

      Returns `true` iff I sort `true` values before `false` values. In other words, returns `true` iff `compare(Boolean.FALSE,Boolean.TRUE)` returns a positive value.
      Returns:
        the trueFirst flag

Copyright © 2001–2015 The Apache Software Foundation. All rights reserved.