Modifier and Type | Method and Description |
---|---|
abstract byte[] |
asBytes()
Returns the value of this hash code as a byte array.
|
abstract int |
asInt()
Returns the first four bytes of this hashcode's bytes, converted to
an
int value in little-endian order. |
abstract long |
asLong()
Returns the first eight bytes of this hashcode's bytes, converted to
a
long value in little-endian order. |
abstract int |
bits()
Returns the number of bits in this hash code; a positive multiple of 8.
|
boolean |
equals(Object object)
Returns
true if object is a HashCode instance with the identical byte
representation to this hash code. |
static HashCode |
fromBytes(byte[] bytes)
Creates a
HashCode from a byte array. |
static HashCode |
fromInt(int hash)
Creates a 32-bit
HashCode representation of the given int value. |
static HashCode |
fromLong(long hash)
Creates a 64-bit
HashCode representation of the given long value. |
static HashCode |
fromString(String string)
Creates a
HashCode from a hexadecimal (base 16 ) encoded string. |
int |
hashCode()
Returns a "Java hash code" for this
HashCode instance; this is well-defined
(so, for example, you can safely put HashCode instances into a HashSet ) but is otherwise probably not what you want to use. |
abstract long |
padToLong()
If this hashcode has enough bits, returns
asLong() , otherwise returns a long
value with asBytes() as the least-significant bytes and 0x00 as the remaining
most-significant bytes. |
String |
toString()
Returns a string containing each byte of
asBytes() , in order, as a two-digit unsigned
hexadecimal number in lower case. |
int |
writeBytesTo(byte[] dest,
int offset,
int maxLength)
Copies bytes from this hash code into
dest . |
@CheckReturnValue public abstract int bits()
@CheckReturnValue public abstract int asInt()
int
value in little-endian order.IllegalStateException
- if bits() < 32
@CheckReturnValue public abstract long asLong()
long
value in little-endian order.IllegalStateException
- if bits() < 64
@CheckReturnValue public abstract long padToLong()
asLong()
, otherwise returns a long
value with asBytes()
as the least-significant bytes and 0x00
as the remaining
most-significant bytes.Hashing.padToLong(HashCode)
)@CheckReturnValue public abstract byte[] asBytes()
HashCode
object or any other arrays
returned by this method.public int writeBytesTo(byte[] dest, int offset, int maxLength)
dest
.dest
- the byte array into which the hash code will be writtenoffset
- the start offset in the datamaxLength
- the maximum number of bytes to writedest
IndexOutOfBoundsException
- if there is not enough room in dest
@CheckReturnValue public static HashCode fromInt(int hash)
HashCode
representation of the given int value. The underlying bytes
are interpreted in little endian order.@CheckReturnValue public static HashCode fromLong(long hash)
HashCode
representation of the given long value. The underlying bytes
are interpreted in little endian order.@CheckReturnValue public static HashCode fromBytes(byte[] bytes)
HashCode
from a byte array. The array is defensively copied to preserve
the immutability contract of HashCode
. The array cannot be empty.@CheckReturnValue public static HashCode fromString(String string)
HashCode
from a hexadecimal (base 16
) encoded string. The string must
be at least 2 characters long, and contain only valid, lower-cased hexadecimal characters.
This method accepts the exact format generated by toString()
. If you require more
lenient base 16
decoding, please use
BaseEncoding.decode(java.lang.CharSequence)
(and pass the result to fromBytes(byte[])
).
public final boolean equals(@Nullable Object object)
true
if object
is a HashCode
instance with the identical byte
representation to this hash code.
Security note:
this method uses a constant-time (not short-circuiting) implementation to protect against timing attacks.public final int hashCode()
HashCode
instance; this is well-defined
(so, for example, you can safely put HashCode
instances into a HashSet
) but is otherwise probably not what you want to use.public final String toString()
asBytes()
, in order, as a two-digit unsigned
hexadecimal number in lower case.
Note that if the output is considered to be a single hexadecimal number, this hash code's
bytes are the big-endian representation of that number. This may be surprising since
everything else in the hashing API uniformly treats multibyte values as little-endian. But
this format conveniently matches that of utilities such as the UNIX md5sum
command.
To create a HashCode
from its string representation, see fromString(java.lang.String)
.
Copyright © 2010-2015. All Rights Reserved.