abstract class AbstractHasher extends java.lang.Object implements Hasher
Hasher
, which only requires subtypes to implement Hasher.putByte(byte)
. Subtypes may provide more efficient implementations, however.Constructor and Description |
---|
AbstractHasher() |
Modifier and Type | Method and Description |
---|---|
Hasher |
putBoolean(boolean b)
Equivalent to
putByte(b ? (byte) 1 : (byte) 0) . |
Hasher |
putBytes(byte[] bytes)
Puts an array of bytes into this sink.
|
Hasher |
putBytes(byte[] bytes,
int off,
int len)
Puts a chunk of an array of bytes into this sink.
|
Hasher |
putBytes(java.nio.ByteBuffer b)
Puts the remaining bytes of a byte buffer into this sink.
|
Hasher |
putChar(char c)
Puts a character into this sink.
|
Hasher |
putDouble(double d)
Equivalent to
putLong(Double.doubleToRawLongBits(d)) . |
Hasher |
putFloat(float f)
Equivalent to
putInt(Float.floatToRawIntBits(f)) . |
Hasher |
putInt(int i)
Puts an int into this sink.
|
Hasher |
putLong(long l)
Puts a long into this sink.
|
<T> Hasher |
putObject(T instance,
Funnel<? super T> funnel)
A simple convenience for
funnel.funnel(object, this) . |
Hasher |
putShort(short s)
Puts a short into this sink.
|
Hasher |
putString(java.lang.CharSequence charSequence,
java.nio.charset.Charset charset)
Equivalent to
putBytes(charSequence.toString().getBytes(charset)) . |
Hasher |
putUnencodedChars(java.lang.CharSequence charSequence)
Equivalent to processing each
char value in the CharSequence , in order. |
public final Hasher putBoolean(boolean b)
Hasher
putByte(b ? (byte) 1 : (byte) 0)
.putBoolean
in interface Hasher
putBoolean
in interface PrimitiveSink
public final Hasher putDouble(double d)
Hasher
putLong(Double.doubleToRawLongBits(d))
.putDouble
in interface Hasher
putDouble
in interface PrimitiveSink
public final Hasher putFloat(float f)
Hasher
putInt(Float.floatToRawIntBits(f))
.putFloat
in interface Hasher
putFloat
in interface PrimitiveSink
public Hasher putUnencodedChars(java.lang.CharSequence charSequence)
Hasher
char
value in the CharSequence
, in order. In
other words, no character encoding is performed; the low byte and high byte of each char
are hashed directly (in that order). The input must not be updated while this method is
in progress.
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
Hasher.putString(java.lang.CharSequence, java.nio.charset.Charset)
, usually with a charset of UTF-8. For other use cases, use putUnencodedChars
.
putUnencodedChars
in interface Hasher
putUnencodedChars
in interface PrimitiveSink
public Hasher putString(java.lang.CharSequence charSequence, java.nio.charset.Charset charset)
Hasher
putBytes(charSequence.toString().getBytes(charset))
.
Warning: This method, which reencodes the input before hashing it, is useful only for
cross-language compatibility. For other use cases, prefer Hasher.putUnencodedChars(java.lang.CharSequence)
, which is
faster, produces the same output across Java releases, and hashes every char
in the
input, even if some are invalid.
putString
in interface Hasher
putString
in interface PrimitiveSink
public Hasher putBytes(byte[] bytes)
PrimitiveSink
putBytes
in interface Hasher
putBytes
in interface PrimitiveSink
bytes
- a byte arraypublic Hasher putBytes(byte[] bytes, int off, int len)
PrimitiveSink
bytes[off]
is the first byte written,
bytes[off + len - 1]
is the last.putBytes
in interface Hasher
putBytes
in interface PrimitiveSink
bytes
- a byte arrayoff
- the start offset in the arraylen
- the number of bytes to writepublic Hasher putBytes(java.nio.ByteBuffer b)
PrimitiveSink
bytes.position()
is the first
byte written, bytes.limit() - 1
is the last. The position of the buffer will be equal
to the limit when this method returns.putBytes
in interface Hasher
putBytes
in interface PrimitiveSink
b
- a byte bufferpublic Hasher putShort(short s)
PrimitiveSink
putShort
in interface Hasher
putShort
in interface PrimitiveSink
public Hasher putInt(int i)
PrimitiveSink
putInt
in interface Hasher
putInt
in interface PrimitiveSink
public Hasher putLong(long l)
PrimitiveSink
putLong
in interface Hasher
putLong
in interface PrimitiveSink
public Hasher putChar(char c)
PrimitiveSink
putChar
in interface Hasher
putChar
in interface PrimitiveSink