Class HashUtil
-
Method Summary
Modifier and TypeMethodDescriptionstatic intinvMix(int x) The inverse ofmix(int).static longinvMix(long x) The inverse ofmix(long).static intmix(int x) Quickly mixes the bits of an integer.static longmix(long x) Quickly mixes the bits of a long integer.static intmurmurHash3(int x) Avalanches the bits of an integer by applying the finalisation step of MurmurHash3.static longmurmurHash3(long x) Avalanches the bits of a long integer by applying the finalisation step of MurmurHash3.
-
Method Details
-
murmurHash3
public static int murmurHash3(int x) Avalanches the bits of an integer by applying the finalisation step of MurmurHash3.This method implements the finalisation step of Austin Appleby's MurmurHash3. Its purpose is to avalanche the bits of the argument to within 0.25% bias.
- Parameters:
x- an integer.- Returns:
- a hash value with good avalanching properties.
-
murmurHash3
public static long murmurHash3(long x) Avalanches the bits of a long integer by applying the finalisation step of MurmurHash3.This method implements the finalisation step of Austin Appleby's MurmurHash3. Its purpose is to avalanche the bits of the argument to within 0.25% bias.
- Parameters:
x- a long integer.- Returns:
- a hash value with good avalanching properties.
-
mix
public static int mix(int x) Quickly mixes the bits of an integer.This method mixes the bits of the argument by multiplying by the golden ratio and xorshifting the result. It is borrowed from Koloboke, and it has slightly worse behaviour than
murmurHash3(int)(in open-addressing hash tables the average number of probes is slightly larger), but it's much faster.- Parameters:
x- an integer.- Returns:
- a hash value obtained by mixing the bits of
x. - See Also:
-
invMix
public static int invMix(int x) The inverse ofmix(int). This method is mainly useful to create unit tests.- Parameters:
x- an integer.- Returns:
- a value that passed through
mix(int)would givex.
-
mix
public static long mix(long x) Quickly mixes the bits of a long integer.This method mixes the bits of the argument by multiplying by the golden ratio and xorshifting twice the result. It is borrowed from Koloboke, and it has slightly worse behaviour than
murmurHash3(long)(in open-addressing hash tables the average number of probes is slightly larger), but it's much faster.- Parameters:
x- a long integer.- Returns:
- a hash value obtained by mixing the bits of
x.
-
invMix
public static long invMix(long x) The inverse ofmix(long). This method is mainly useful to create unit tests.- Parameters:
x- a long integer.- Returns:
- a value that passed through
mix(long)would givex.
-