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 and Description |
---|---|
static class |
MurmurHash3.LongPair
128 bits of state
|
Constructor and Description |
---|
MurmurHash3() |
Modifier and Type | Method and 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 void |
murmurhash3_x64_128(byte[] key,
int offset,
int len,
int seed,
MurmurHash3.LongPair out)
Returns the MurmurHash3_x64_128 hash, placing the result in "out".
|
static int |
murmurhash3_x86_32(byte[] data,
int offset,
int len,
int seed)
Returns the MurmurHash3_x86_32 hash.
|
static int |
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)
buf
- The buffer to operate on.offset
- The current offset into the buffer.public static int murmurhash3_x86_32(byte[] data, int offset, int len, int seed)
data
- The data to hash.offset
- The offset into the data.len
- The length of the data to hash.seed
- The initial seed of the hash.public static int murmurhash3_x86_32(CharSequence data, int offset, int len, int seed)
data
- The data to hash.offset
- The offset into the data.len
- The length of the data to hash.seed
- The initial seed of the hash.public static void murmurhash3_x64_128(byte[] key, int offset, int len, int seed, MurmurHash3.LongPair out)
key
- The data to hash.offset
- The offset into the data.len
- The length of the data to hash.seed
- The initial state of the hash.out
- The output value (as it's 128 bits).Copyright © 2015–2021 Oracle and/or its affiliates. All rights reserved.