public final class MurmurHash3 extends Object
This produces exactly the same hash values as the final C++ version of MurmurHash3 and is thus suitable for producing the same hash values across platforms.
The 32 bit x86 version of this hash should be the fastest variant for relatively short keys like ids. murmurhash3_x64_128 is a good choice for longer strings or if you need more than 32 bits of hash.
Note - The x86 and x64 versions do _not_ produce the same results, as the algorithms are optimized for their respective platforms.
See http://github.com/yonik/java_util for future updates to this file.
Modifier and Type | Class | Description |
---|---|---|
static class |
MurmurHash3.LongPair |
128 bits of state
|
Constructor | Description |
---|---|
MurmurHash3() |
Modifier and Type | Method | Description |
---|---|---|
static int |
fmix32(int h) |
|
static long |
fmix64(long k) |
|
static long |
getLongLittleEndian(byte[] buf,
int offset) |
Gets a long from a byte buffer in little endian byte order.
|
static long[] |
hash128x64(byte[] data) |
|
static long[] |
hash128x64(byte[] data,
int offset,
int length,
long seed) |
Generates 128-bit hash from the byte array with the given offset, length and seed.
|
static long |
murmurhash3_x86_32(CharSequence data,
int offset,
int len,
int seed) |
Returns the MurmurHash3_x86_32 hash of the UTF-8 bytes of the String without actually encoding
the string to a temporary buffer.
|
public static final int fmix32(int h)
public static final long fmix64(long k)
public static final long getLongLittleEndian(byte[] buf, int offset)
public static long murmurhash3_x86_32(CharSequence data, int offset, int len, int seed)
public static long[] hash128x64(byte[] data)
public static long[] hash128x64(byte[] data, int offset, int length, long seed)
This is an implementation of the 128-bit hash function MurmurHash3_x64_128
from from Austin Applyby's original MurmurHash3 c++
code in SMHasher.
data
- The input byte arrayoffset
- The first element of arraylength
- The length of arrayseed
- The initial seed valueCopyright © 2021 Unlaunch. All rights reserved.