protected int hash(Object key){
  int h=key.hashCode();
  h+=~(h << 9);
  h^=(h >>> 14);
  h+=(h << 4);
  h^=(h >>> 10);
  return h;
}

protected int hash ( Object key ) { int h = key . hashCode ( ) ; h += ~ ( h << 9 ) ; h ^= ( h > > > 14 ) ; h += ( h << 4 ) ; h ^= ( h > > > 10 ) ; return h ; }
gets the hash code for the key specified . this implementation uses the additional hashing routine from jdk1 . 4 . subclasses can override this to return alternate hash codes .
