Class HashCode
-
Method Summary
Modifier and TypeMethodDescriptionabstract 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 anint
value in little-endian order.abstract long
asLong()
Returns the first eight bytes of this hashcode's bytes, converted to along
value in little-endian order.abstract int
bits()
Returns the number of bits in this hash code; a positive multiple of 8.final boolean
Returnstrue
ifobject
is aHashCode
instance with the identical byte representation to this hash code.static HashCode
fromBytes
(byte[] bytes) Creates aHashCode
from a byte array.static HashCode
fromInt
(int hash) Creates a 32-bitHashCode
representation of the given int value.static HashCode
fromLong
(long hash) Creates a 64-bitHashCode
representation of the given long value.static HashCode
fromString
(String string) Creates aHashCode
from a hexadecimal (base 16
) encoded string.final int
hashCode()
Returns a "Java hash code" for thisHashCode
instance; this is well-defined (so, for example, you can safely putHashCode
instances into aHashSet
) but is otherwise probably not what you want to use.abstract long
If this hashcode has enough bits, returnsasLong()
, otherwise returns along
value withasBytes()
as the least-significant bytes and0x00
as the remaining most-significant bytes.final String
toString()
Returns a string containing each byte ofasBytes()
, 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 intodest
.
-
Method Details
-
bits
Returns the number of bits in this hash code; a positive multiple of 8. -
asInt
Returns the first four bytes of this hashcode's bytes, converted to anint
value in little-endian order.- Throws:
IllegalStateException
- ifbits() < 32
-
asLong
Returns the first eight bytes of this hashcode's bytes, converted to along
value in little-endian order.- Throws:
IllegalStateException
- ifbits() < 64
-
padToLong
If this hashcode has enough bits, returnsasLong()
, otherwise returns along
value withasBytes()
as the least-significant bytes and0x00
as the remaining most-significant bytes.- Since:
- 14.0 (since 11.0 as
Hashing.padToLong(HashCode)
)
-
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 thisHashCode
object or any other arrays returned by this method. -
writeBytesTo
Copies bytes from this hash code intodest
.- Parameters:
dest
- the byte array into which the hash code will be writtenoffset
- the start offset in the datamaxLength
- the maximum number of bytes to write- Returns:
- the number of bytes written to
dest
- Throws:
IndexOutOfBoundsException
- if there is not enough room indest
-
fromInt
-
fromLong
-
fromBytes
-
fromString
Creates aHashCode
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 lenientbase 16
decoding, please useBaseEncoding.decode(java.lang.CharSequence)
(and pass the result tofromBytes(byte[])
).- Since:
- 15.0
-
equals
Returnstrue
ifobject
is aHashCode
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.
-
hashCode
-
toString
Returns a string containing each byte ofasBytes()
, 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, whether this string is big-endian or little-endian depends on the byte order of
asBytes()
. This may be surprising for implementations ofHashCode
that represent the number in big-endian since everything else in the hashing API uniformly treats multibyte values as little-endian.To create a
HashCode
from its string representation, seefromString(java.lang.String)
.
-