public class JenkinsHash extends Hash
lookup3.c, by Bob Jenkins, May 2006, Public Domain. You can use this free for any purpose. It's in the public domain. It has no warranty.
|Constructor and Description|
|Modifier and Type||Method and Description|
taken from hashlittle() -- hash a variable-length key into a 32-bit value
Compute the hash of the specified file
getHashType, getInstance, getInstance, hash, hash, hash, parseHashType
public int hash(byte key, int off, int nbytes, int initval)
key- the key (the unaligned variable-length array of bytes)
nbytes- number of bytes to include in hash
initval- can be any integer value
off- the offset into the array to start consideration
The best hash table sizes are powers of 2. There is no need to do mod
a prime (mod is sooo slow!). If you need less than 32 bits, use a bitmask.
For example, if you need only 10 bits, do
h = (h & hashmask(10));
In which case, the hash table should have hashsize(10) elements.
If you are hashing n strings byte k, do it like this: for (int i = 0, h = 0; i < n; ++i) h = hash( k[i], h);
By Bob Jenkins, 2006. email@example.com. You may use this code any way you wish, private, educational, or commercial. It's free.
Use for hash table lookup, or anything where one collision in 2^^32 is acceptable. Do NOT use for cryptographic purposes.
Copyright © 2015 The Apache Software Foundation. All rights reserved.