Save This Page
Home » apache-harmony-6.0-src-r917296-snapshot » org.apache.harmony.misc » [javadoc | source]
org.apache.harmony.misc
public final class: HashCode [javadoc | source]
java.lang.Object
   org.apache.harmony.misc.HashCode
This class is a convenience method to sequentially calculate hash code of the object based on the field values. The result depends on the order of elements appended. The exact formula is the same as for java.util.List.hashCode. If you need order independent hash code just summate, multiply or XOR all elements.

Suppose we have class:


class Thing {
    long id;
    String name;
    float weight;
}
The hash code calculation can be expressed in 2 forms.

For maximum performance:


public int hashCode() {
    int hashCode = HashCode.EMPTY_HASH_CODE;
    hashCode = HashCode.combine(hashCode, id);
    hashCode = HashCode.combine(hashCode, name);
    hashCode = HashCode.combine(hashCode, weight);
    return hashCode;
}

For convenience:

public int hashCode() {
    return new HashCode().append(id).append(name).append(weight).hashCode();
}
Field Summary
public static final  int EMPTY_HASH_CODE    The hashCode value before any data is appended, equals to 1.
    Also see:
    java.util.List#hashCode()
 
Method from org.apache.harmony.misc.HashCode Summary:
append,   append,   append,   append,   append,   append,   combine,   combine,   combine,   combine,   combine,   combine,   hashCode
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.harmony.misc.HashCode Detail:
 public final HashCode append(int value) 
    Appends value's hashCode to the current hashCode.
 public final HashCode append(long value) 
    Appends value's hashCode to the current hashCode.
 public final HashCode append(float value) 
    Appends value's hashCode to the current hashCode.
 public final HashCode append(double value) 
    Appends value's hashCode to the current hashCode.
 public final HashCode append(boolean value) 
    Appends value's hashCode to the current hashCode.
 public final HashCode append(Object value) 
    Appends value's hashCode to the current hashCode.
 public static int combine(int hashCode,
    boolean value) 
    Combines hashCode of previous elements sequence and value's hashCode.
 public static int combine(int hashCode,
    long value) 
    Combines hashCode of previous elements sequence and value's hashCode.
 public static int combine(int hashCode,
    float value) 
    Combines hashCode of previous elements sequence and value's hashCode.
 public static int combine(int hashCode,
    double value) 
    Combines hashCode of previous elements sequence and value's hashCode.
 public static int combine(int hashCode,
    Object value) 
    Combines hashCode of previous elements sequence and value's hashCode.
 public static int combine(int hashCode,
    int value) 
    Combines hashCode of previous elements sequence and value's hashCode.
 public final int hashCode() 
    Returns accumulated hashCode