Package com.google.common.hash
Class AbstractNonStreamingHashFunction
java.lang.Object
com.google.common.hash.AbstractHashFunction
com.google.common.hash.AbstractNonStreamingHashFunction
- All Implemented Interfaces:
HashFunction
- Direct Known Subclasses:
FarmHashFingerprint64,Fingerprint2011
Skeleton implementation of
HashFunction, appropriate for non-streaming algorithms. All
the hash computation done using newHasher() are delegated to the hashBytes(byte[], int, int) method.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate final classIn-memory stream-based implementation of Hasher.private static final class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract HashCodehashBytes(byte[] input, int off, int len) Shortcut fornewHasher().putBytes(input, off, len).hash().hashBytes(ByteBuffer input) Shortcut fornewHasher().putBytes(input).hash().hashInt(int input) Shortcut fornewHasher().putInt(input).hash(); returns the hash code for the givenintvalue, interpreted in little-endian byte order.hashLong(long input) Shortcut fornewHasher().putLong(input).hash(); returns the hash code for the givenlongvalue, interpreted in little-endian byte order.hashString(CharSequence input, Charset charset) Shortcut fornewHasher().putString(input, charset).hash().hashUnencodedChars(CharSequence input) Shortcut fornewHasher().putUnencodedChars(input).hash().Begins a new hash code computation by returning an initialized, statefulHasherinstance that is ready to receive data.newHasher(int expectedInputSize) Begins a new hash code computation asHashFunction.newHasher(), but provides a hint of the expected size of the input (in bytes).Methods inherited from class com.google.common.hash.AbstractHashFunction
hashBytes, hashObjectMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.google.common.hash.HashFunction
bits
-
Constructor Details
-
AbstractNonStreamingHashFunction
AbstractNonStreamingHashFunction()
-
-
Method Details
-
newHasher
Description copied from interface:HashFunctionBegins a new hash code computation by returning an initialized, statefulHasherinstance that is ready to receive data. Example:HashFunction hf = Hashing.md5(); HashCode hc = hf.newHasher() .putLong(id) .putBoolean(isActive) .hash(); -
newHasher
Description copied from interface:HashFunctionBegins a new hash code computation asHashFunction.newHasher(), but provides a hint of the expected size of the input (in bytes). This is only important for non-streaming hash functions (hash functions that need to buffer their whole input before processing any of it).- Specified by:
newHasherin interfaceHashFunction- Overrides:
newHasherin classAbstractHashFunction
-
hashInt
Description copied from interface:HashFunctionShortcut fornewHasher().putInt(input).hash(); returns the hash code for the givenintvalue, interpreted in little-endian byte order. The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashIntin interfaceHashFunction- Overrides:
hashIntin classAbstractHashFunction
-
hashLong
Description copied from interface:HashFunctionShortcut fornewHasher().putLong(input).hash(); returns the hash code for the givenlongvalue, interpreted in little-endian byte order. The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashLongin interfaceHashFunction- Overrides:
hashLongin classAbstractHashFunction
-
hashUnencodedChars
Description copied from interface:HashFunctionShortcut fornewHasher().putUnencodedChars(input).hash(). The implementation might perform better than its longhand equivalent, but should not perform worse. Note that no character encoding is performed; the low byte and high byte of eachcharare hashed directly (in that order).Warning: This method will produce different output than most other languages do when running the same hash function on the equivalent input. For cross-language compatibility, use
HashFunction.hashString(java.lang.CharSequence, java.nio.charset.Charset), usually with a charset of UTF-8. For other use cases, usehashUnencodedChars.- Specified by:
hashUnencodedCharsin interfaceHashFunction- Overrides:
hashUnencodedCharsin classAbstractHashFunction
-
hashString
Description copied from interface:HashFunctionShortcut fornewHasher().putString(input, charset).hash(). Characters are encoded using the givenCharset. The implementation might perform better than its longhand equivalent, but should not perform worse.Warning: This method, which reencodes the input before hashing it, is useful only for cross-language compatibility. For other use cases, prefer
HashFunction.hashUnencodedChars(java.lang.CharSequence), which is faster, produces the same output across Java releases, and hashes everycharin the input, even if some are invalid.- Specified by:
hashStringin interfaceHashFunction- Overrides:
hashStringin classAbstractHashFunction
-
hashBytes
Description copied from interface:HashFunctionShortcut fornewHasher().putBytes(input, off, len).hash(). The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashBytesin interfaceHashFunction- Overrides:
hashBytesin classAbstractHashFunction
-
hashBytes
Description copied from interface:HashFunctionShortcut fornewHasher().putBytes(input).hash(). The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashBytesin interfaceHashFunction- Overrides:
hashBytesin classAbstractHashFunction
-