Package org.infinispan.commons.hash
Class MurmurHash3
java.lang.Object
org.infinispan.commons.hash.MurmurHash3
- All Implemented Interfaces:
Hash
MurmurHash3 implementation in Java, based on Austin Appleby's original in C
Only implementing x64 version, because this should always be faster on 64 bit
native processors, even 64 bit being ran with a 32 bit OS; this should also
be as fast or faster than the x86 version on some modern 32 bit processors.
- Since:
- 5.0
- Author:
- Patrick McFarland
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbooleanstatic MurmurHash3inthash(byte[] payload) Hashes a byte array efficiently.inthash(int hashcode) An incremental version of the hash function, that spreads a pre-calculated hash code, such as one derived fromObject.hashCode().static inthash(long[] payload) Hashes a byte array efficiently.intA helper that calculates the hashcode of an object, choosing the optimal mechanism of hash calculation after considering the type of the object (byte array, String or Object).inthashCode()static long[]MurmurHash3_x64_128(byte[] key, int seed) Hash a value using the x64 128 bit variant of MurmurHash3static long[]MurmurHash3_x64_128(long[] key, int seed) Hash a value using the x64 128 bit variant of MurmurHash3static intMurmurHash3_x64_32(byte[] key, int seed) Hash a value using the x64 32 bit variant of MurmurHash3static intMurmurHash3_x64_32(long[] key, int seed) Hash a value using the x64 32 bit variant of MurmurHash3static longMurmurHash3_x64_64(byte[] key, int seed) Hash a value using the x64 64 bit variant of MurmurHash3static longMurmurHash3_x64_64(long[] key, int seed) Hash a value using the x64 64 bit variant of MurmurHash3toString()
-
Field Details
-
INVALID_CHAR
public static final byte INVALID_CHAR- See Also:
-
-
Method Details
-
getInstance
-
MurmurHash3_x64_128
public static long[] MurmurHash3_x64_128(byte[] key, int seed) Hash a value using the x64 128 bit variant of MurmurHash3- Parameters:
key- value to hashseed- random value- Returns:
- 128 bit hashed key, in an array containing two longs
-
MurmurHash3_x64_64
public static long MurmurHash3_x64_64(byte[] key, int seed) Hash a value using the x64 64 bit variant of MurmurHash3- Parameters:
key- value to hashseed- random value- Returns:
- 64 bit hashed key
-
MurmurHash3_x64_32
public static int MurmurHash3_x64_32(byte[] key, int seed) Hash a value using the x64 32 bit variant of MurmurHash3- Parameters:
key- value to hashseed- random value- Returns:
- 32 bit hashed key
-
MurmurHash3_x64_128
public static long[] MurmurHash3_x64_128(long[] key, int seed) Hash a value using the x64 128 bit variant of MurmurHash3- Parameters:
key- value to hashseed- random value- Returns:
- 128 bit hashed key, in an array containing two longs
-
MurmurHash3_x64_64
public static long MurmurHash3_x64_64(long[] key, int seed) Hash a value using the x64 64 bit variant of MurmurHash3- Parameters:
key- value to hashseed- random value- Returns:
- 64 bit hashed key
-
MurmurHash3_x64_32
public static int MurmurHash3_x64_32(long[] key, int seed) Hash a value using the x64 32 bit variant of MurmurHash3- Parameters:
key- value to hashseed- random value- Returns:
- 32 bit hashed key
-
hash
public int hash(byte[] payload) Description copied from interface:HashHashes a byte array efficiently. -
hash
public static int hash(long[] payload) Hashes a byte array efficiently.- Parameters:
payload- a byte array to hash- Returns:
- a hash code for the byte array
-
hash
public int hash(int hashcode) Description copied from interface:HashAn incremental version of the hash function, that spreads a pre-calculated hash code, such as one derived fromObject.hashCode(). -
hash
Description copied from interface:HashA helper that calculates the hashcode of an object, choosing the optimal mechanism of hash calculation after considering the type of the object (byte array, String or Object). -
equals
-
hashCode
public int hashCode() -
toString
-