Class IdentityComparator<T>

  • All Implemented Interfaces:

    public class IdentityComparator<T>
    extends java.lang.Object
    implements java.util.Comparator<T>
    The comparator uses == and System.identifyHashCode to compare two objects. It assumes if o1 != o2, then c1 != c2 where c1 = System.identityHashCode(o1).

    This is useful if dynamic proxy is used with TreeSet or TreeMap (so equals is expensive). Reason: the speed of identifyHashCode is much faster than dynamic proxy (150:1).

    However, if possible, java.util.IdentityHashMap and IdentityHashSet are preferred.

    See Also:
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int compare​(T o1, T o2)  
      • Methods inherited from class java.lang.Object

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

        equals, reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
    • Constructor Detail

      • IdentityComparator

        public IdentityComparator()
    • Method Detail

      • compare

        public int compare​(T o1,
                           T o2)
        Specified by:
        compare in interface java.util.Comparator<T>