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 class
In-memory stream-based implementation of Hasher.private static final class
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract HashCode
hashBytes
(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 givenint
value, interpreted in little-endian byte order.hashLong
(long input) Shortcut fornewHasher().putLong(input).hash()
; returns the hash code for the givenlong
value, 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, statefulHasher
instance 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, hashObject
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.google.common.hash.HashFunction
bits
-
Constructor Details
-
AbstractNonStreamingHashFunction
AbstractNonStreamingHashFunction()
-
-
Method Details
-
newHasher
Description copied from interface:HashFunction
Begins a new hash code computation by returning an initialized, statefulHasher
instance 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:HashFunction
Begins 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:
newHasher
in interfaceHashFunction
- Overrides:
newHasher
in classAbstractHashFunction
-
hashInt
Description copied from interface:HashFunction
Shortcut fornewHasher().putInt(input).hash()
; returns the hash code for the givenint
value, interpreted in little-endian byte order. The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashInt
in interfaceHashFunction
- Overrides:
hashInt
in classAbstractHashFunction
-
hashLong
Description copied from interface:HashFunction
Shortcut fornewHasher().putLong(input).hash()
; returns the hash code for the givenlong
value, interpreted in little-endian byte order. The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashLong
in interfaceHashFunction
- Overrides:
hashLong
in classAbstractHashFunction
-
hashUnencodedChars
Description copied from interface:HashFunction
Shortcut 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 eachchar
are 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:
hashUnencodedChars
in interfaceHashFunction
- Overrides:
hashUnencodedChars
in classAbstractHashFunction
-
hashString
Description copied from interface:HashFunction
Shortcut 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 everychar
in the input, even if some are invalid.- Specified by:
hashString
in interfaceHashFunction
- Overrides:
hashString
in classAbstractHashFunction
-
hashBytes
Description copied from interface:HashFunction
Shortcut fornewHasher().putBytes(input, off, len).hash()
. The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashBytes
in interfaceHashFunction
- Overrides:
hashBytes
in classAbstractHashFunction
-
hashBytes
Description copied from interface:HashFunction
Shortcut fornewHasher().putBytes(input).hash()
. The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashBytes
in interfaceHashFunction
- Overrides:
hashBytes
in classAbstractHashFunction
-