| Class | Description |
|---|---|
| StreamingXXHash32 |
Streaming interface for
XXHash32. |
| StreamingXXHash64 |
Streaming interface for
XXHash64. |
| XXHash32 |
A 32-bits hash.
|
| XXHash64 |
A 64-bits hash.
|
| XXHashFactory |
Entry point to get
XXHash32 and StreamingXXHash32 instances. |
xxhash hashing. This package supports both block hashing via
XXHash32 and streaming hashing via
StreamingXXHash32. Have a look at
XXHashFactory to know how to get instances of these
interfaces.
Streaming hashing is a little slower but doesn't require to load the whole stream into memory.
Sample block usage:
XXHashFactory factory = XXHashFactory.fastestInstance();
byte[] data = "12345345234572".getBytes("UTF-8");
XXHash32 hash32 = factory.hash32();
int seed = 0x9747b28c; // used to initialize the hash value, use whatever
// value you want, but always the same
int hash = hash32.hash(data, 0, data.length, seed);
Sample streaming usage:
XXHashFactory factory = XXHashFactory.fastestInstance();
byte[] data = "12345345234572".getBytes("UTF-8");
ByteArrayInputStream in = new ByteArrayInputStream(data);
int seed = 0x9747b28c; // used to initialize the hash value, use whatever
// value you want, but always the same
StreamingXXHash32 hash32 = factory.newStreamingHash32(seed);
byte[] buf = new byte[8]; // for real-world usage, use a larger buffer, like 8192 bytes
for (;;) {
int read = in.read(buf);
if (read == -1) {
break;
}
hash32.update(buf, 0, read);
}
int hash = hash32.getValue();