com.google.common.hash
Class HashCode

java.lang.Object
  extended by com.google.common.hash.HashCode

@Beta
public abstract class HashCode
extends Object

An immutable hash code of arbitrary bit length.

Since:
11.0
Author:
Dimitris Andreou

Method Summary
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 32.
 boolean equals(Object object)
           
 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.
 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.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

asInt

public abstract int asInt()
Returns the first four bytes of this hashcode's bytes, converted to an int value in little-endian order.


asLong

public abstract long asLong()
Returns the first eight bytes of this hashcode's bytes, converted to a long value in little-endian order.

Throws:
IllegalStateException - if bits() < 64

asBytes

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.


writeBytesTo

public int writeBytesTo(byte[] dest,
                        int offset,
                        int maxLength)
Copies bytes from this hash code into dest.

Parameters:
dest - the byte array into which the hash code will be written
offset - the start offset in the data
maxLength - the maximum number of bytes to write
Returns:
the number of bytes written to dest
Throws:
IndexOutOfBoundsException - if there is not enough room in dest

bits

public abstract int bits()
Returns the number of bits in this hash code; a positive multiple of 32.


equals

public boolean equals(Object object)
Overrides:
equals in class Object

hashCode

public 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.

Overrides:
hashCode in class Object

toString

public 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.

Overrides:
toString in class Object


Copyright © 2010-2011. All Rights Reserved.