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()
Returns the number of bits in this hash code; a positive multiple of 8.
@CheckReturnValue public abstract int asInt()
Returns the first four bytes of this hashcode's bytes, converted to an int
value in little-endian order.
IllegalStateException
- if bits() < 32
@CheckReturnValue public abstract long asLong()
Returns the first eight bytes of this hashcode's bytes, converted to a long
value in little-endian order.
IllegalStateException
- if bits() < 64
@CheckReturnValue public 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.
Hashing.padToLong(HashCode)
)@CheckReturnValue public abstract byte[] asBytes()
Returns the value of this hash code as a byte array. The caller may modify the byte array; changes to it will not be reflected in this HashCode
object or any other arrays returned by this method.
public int writeBytesTo(byte[] dest, int offset, int maxLength)
Copies bytes from this hash code into 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)
Creates a 32-bit HashCode
representation of the given int value. The underlying bytes are interpreted in little endian order.
@CheckReturnValue public static HashCode fromLong(long hash)
Creates a 64-bit HashCode
representation of the given long value. The underlying bytes are interpreted in little endian order.
@CheckReturnValue public static HashCode fromBytes(byte[] bytes)
Creates a 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)
Creates a 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)
Returns 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()
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.
public final String toString()
Returns a string containing each byte of 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)
.