Class HashUtil
-
Method Summary
Modifier and TypeMethodDescriptionstatic inthash(int x) A hash function for anint.static longhash(long x) A hash function for along.static intinvHash(int x) Inverseshash(int).static longinvHash(long x) Inverseshash(long).static 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
-
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
-
hash
public static int hash(int x) A hash function for anint. This hash function is designed to be used to index into a hash table. There are no guarantees about how the hash is computed.- Parameters:
x- The input- Returns:
- A hash for the input.
-
invHash
-
hash
public static long hash(long x) A hash function for along. This hash function is designed to be used to index into a hash table. There are no guarantees about how the hash is computed.- Parameters:
x- The input- Returns:
- A hash for the input.
-
invHash
public static long invHash(long x) Inverseshash(long). That is,x = invHash(hash(x)).- Parameters:
x- The input- Returns:
- The inverse of
hash(long).
-