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();