Package com.google.common.hash
Class AbstractHashFunction
- java.lang.Object
-
- com.google.common.hash.AbstractHashFunction
-
- All Implemented Interfaces:
HashFunction
- Direct Known Subclasses:
AbstractCompositeHashFunction,AbstractNonStreamingHashFunction,ChecksumHashFunction,Crc32cHashFunction,MacHashFunction,MessageDigestHashFunction,Murmur3_128HashFunction,Murmur3_32HashFunction,SipHashFunction
abstract class AbstractHashFunction extends java.lang.Object implements HashFunction
Skeleton implementation ofHashFunctionin terms ofHashFunction.newHasher().TODO(lowasser): make public
-
-
Constructor Summary
Constructors Constructor Description AbstractHashFunction()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HashCodehashBytes(byte[] input)Shortcut fornewHasher().putBytes(input).hash().HashCodehashBytes(byte[] input, int off, int len)Shortcut fornewHasher().putBytes(input, off, len).hash().HashCodehashBytes(java.nio.ByteBuffer input)Shortcut fornewHasher().putBytes(input).hash().HashCodehashInt(int input)Shortcut fornewHasher().putInt(input).hash(); returns the hash code for the givenintvalue, interpreted in little-endian byte order.HashCodehashLong(long input)Shortcut fornewHasher().putLong(input).hash(); returns the hash code for the givenlongvalue, interpreted in little-endian byte order.<T> HashCodehashObject(T instance, Funnel<? super T> funnel)Shortcut fornewHasher().putObject(instance, funnel).hash().HashCodehashString(java.lang.CharSequence input, java.nio.charset.Charset charset)Shortcut fornewHasher().putString(input, charset).hash().HashCodehashUnencodedChars(java.lang.CharSequence input)Shortcut fornewHasher().putUnencodedChars(input).hash().HashernewHasher(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 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.google.common.hash.HashFunction
bits, newHasher
-
-
-
-
Method Detail
-
hashObject
public <T> HashCode hashObject(T instance, Funnel<? super T> funnel)
Description copied from interface:HashFunctionShortcut fornewHasher().putObject(instance, funnel).hash(). The implementation might perform better than its longhand equivalent, but should not perform worse.- Specified by:
hashObjectin interfaceHashFunction
-
hashUnencodedChars
public HashCode hashUnencodedChars(java.lang.CharSequence input)
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
-
hashString
public HashCode hashString(java.lang.CharSequence input, java.nio.charset.Charset charset)
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
-
hashInt
public HashCode hashInt(int input)
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
-
hashLong
public HashCode hashLong(long input)
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
-
hashBytes
public HashCode hashBytes(byte[] input)
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
-
hashBytes
public HashCode hashBytes(byte[] input, int off, int len)
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
-
hashBytes
public HashCode hashBytes(java.nio.ByteBuffer input)
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
-
newHasher
public Hasher newHasher(int expectedInputSize)
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
-
-