Package org.infinispan.commons.hash
Class MurmurHash3
- java.lang.Object
-
- org.infinispan.commons.hash.MurmurHash3
-
- All Implemented Interfaces:
Hash
@ThreadSafe @Immutable public class MurmurHash3 extends Object implements 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:
- MurmurHash website, MurmurHash entry on Wikipedia
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMurmurHash3.Externalizer
-
Field Summary
Fields Modifier and Type Field Description static byteINVALID_CHAR
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object other)static MurmurHash3getInstance()inthash(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.inthash(Object o)A 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 MurmurHash3StringtoString()
-
-
-
Field Detail
-
INVALID_CHAR
public static final byte INVALID_CHAR
- See Also:
- Constant Field Values
-
-
Method Detail
-
getInstance
public static MurmurHash3 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
public int hash(Object o)
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).
-
-