Documentation of 'javolution37.javolution.util.FastComparator' Java class
FastComparator
javolution37.javolution.util

Class FastComparator<T>

  • All Implemented Interfaces:
    java.io.Serializable, java.util.Comparator<T>


    public abstract class FastComparator<T>
    extends java.lang.Object
    implements java.util.Comparator<T>, java.io.Serializable

    This class represents a comparator to be used for equality as well as for ordering; instances of this class provide a hashcode function consistent with equal (if two objects are equal, they have the same hashcode), equality with null values is supported.

    FastComparator can be employed with FastMap (e.g. custom key comparators for identity maps, value retrieval using keys of a different class that the map keys) or with FastCollection classes.

    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      static FastComparator DEFAULT
      Holds the default object comparator; rehash is performed if the system hash code (platform dependent) is not evenly distributed.
      static FastComparator DIRECT
      Holds the direct object comparator; no rehash is performed.
      static FastComparator IDENTITY
      Holds the identity comparator; poorly distributed system hashcodes are rehashed.
      static FastComparator LEXICAL
      Holds a lexicographic comparator for any CharSequence or String instances.
      static FastComparator REHASH
      Holds the comparator for objects with uneven hash distribution; objects hashcodes are rehashed.
    • Constructor Summary

      Constructors 
      Constructor and Description
      FastComparator() 
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method and Description
      abstract boolean areEqual(T o1, T o2)
      Indicates if the specified objects can be considered equal.
      abstract int compare(T o1, T o2)
      Compares the specified objects for order.
      abstract int hashCodeOf(T obj)
      Returns the hash code for the specified object (consistent with areEqual(T, T)).
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Comparator

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

      • DEFAULT

        public static final FastComparator DEFAULT
        Holds the default object comparator; rehash is performed if the system hash code (platform dependent) is not evenly distributed.
        See Also:
        Javolution Configuration
      • DIRECT

        public static final FastComparator DIRECT
        Holds the direct object comparator; no rehash is performed. Two objects o1 and o2 are considered equal if and only if o1.equals(o2). The compare(T, T) method throws ClassCastException if the specified objects are not Comparable.
      • REHASH

        public static final FastComparator REHASH
        Holds the comparator for objects with uneven hash distribution; objects hashcodes are rehashed. Two objects o1 and o2 are considered equal if and only if o1.equals(o2). The compare(T, T) method throws ClassCastException if the specified objects are not Comparable.
      • IDENTITY

        public static final FastComparator IDENTITY
        Holds the identity comparator; poorly distributed system hashcodes are rehashed. Two objects o1 and o2 are considered equal if and only if (o1 == o2). The compare(T, T) method throws ClassCastException if the specified objects are not Comparable.
      • LEXICAL

        public static final FastComparator LEXICAL
        Holds a lexicographic comparator for any CharSequence or String instances. Two objects are considered equal if and only if they represents the same character sequence). The hashcode is calculated using the following formula (same as for java.lang.String): s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
    • Constructor Detail

      • FastComparator

        public FastComparator()
    • Method Detail

      • hashCodeOf

        public abstract int hashCodeOf(T obj)
        Returns the hash code for the specified object (consistent with areEqual(T, T)). Two objects considered equal have the same hash code.
        Parameters:
        obj - the object to return the hashcode for.
        Returns:
        the hashcode for the specified object.
        Throws:
        java.lang.NullPointerException - if the specified object is null.
      • areEqual

        public abstract boolean areEqual(T o1,
                                         T o2)
        Indicates if the specified objects can be considered equal.
        Parameters:
        o1 - the first object (or null).
        o2 - the second object (or null).
        Returns:
        true if both objects are considered equal; false otherwise.
      • compare

        public abstract int compare(T o1,
                                    T o2)
        Compares the specified objects for order. Returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
        Specified by:
        compare in interface java.util.Comparator<T>
        Parameters:
        o1 - the first object.
        o2 - the second object.
        Returns:
        a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
        Throws:
        java.lang.NullPointerException - if any of the specified object is null.

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.