|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.itextpdf.awt.geom.misc.HashCode
public final class 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();
}
List.hashCode()
Field Summary | |
---|---|
static int |
EMPTY_HASH_CODE
The hashCode value before any data is appended, equals to 1. |
Constructor Summary | |
---|---|
HashCode()
|
Method Summary | |
---|---|
HashCode |
append(boolean value)
Appends value's hashCode to the current hashCode. |
HashCode |
append(double value)
Appends value's hashCode to the current hashCode. |
HashCode |
append(float value)
Appends value's hashCode to the current hashCode. |
HashCode |
append(int value)
Appends value's hashCode to the current hashCode. |
HashCode |
append(long value)
Appends value's hashCode to the current hashCode. |
HashCode |
append(Object value)
Appends value's hashCode to the current hashCode. |
static int |
combine(int hashCode,
boolean value)
Combines hashCode of previous elements sequence and value's hashCode. |
static int |
combine(int hashCode,
double value)
Combines hashCode of previous elements sequence and value's hashCode. |
static int |
combine(int hashCode,
float value)
Combines hashCode of previous elements sequence and value's hashCode. |
static int |
combine(int hashCode,
int value)
Combines hashCode of previous elements sequence and value's hashCode. |
static int |
combine(int hashCode,
long value)
Combines hashCode of previous elements sequence and value's hashCode. |
static int |
combine(int hashCode,
Object value)
Combines hashCode of previous elements sequence and value's hashCode. |
int |
hashCode()
Returns accumulated hashCode |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int EMPTY_HASH_CODE
List.hashCode()
,
Constant Field ValuesConstructor Detail |
---|
public HashCode()
Method Detail |
---|
public final int hashCode()
hashCode
in class Object
public static int combine(int hashCode, boolean value)
hashCode
- previous hashCode valuevalue
- new element
public static int combine(int hashCode, long value)
hashCode
- previous hashCode valuevalue
- new element
public static int combine(int hashCode, float value)
hashCode
- previous hashCode valuevalue
- new element
public static int combine(int hashCode, double value)
hashCode
- previous hashCode valuevalue
- new element
public static int combine(int hashCode, Object value)
hashCode
- previous hashCode valuevalue
- new element
public static int combine(int hashCode, int value)
hashCode
- previous hashCode valuevalue
- new element
public final HashCode append(int value)
value
- new element
public final HashCode append(long value)
value
- new element
public final HashCode append(float value)
value
- new element
public final HashCode append(double value)
value
- new element
public final HashCode append(boolean value)
value
- new element
public final HashCode append(Object value)
value
- new element
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |