protected int hash(Object o){
  int h=o == null ? 0 : o.hashCode();
  h+=(h << 15) ^ 0xffffcd7d;
  h^=(h >>> 10);
  h+=(h << 3);
  h^=(h >>> 6);
  h+=(h << 2) + (h << 14);
  return h ^ (h >>> 16);
}

protected int hash ( Object o ) { int h = o == null ? 0 : o . hashCode ( ) ; h += ( h << 15 ) ^ 0xffffcd7d ; h ^= ( h > > > 10 ) ; h += ( h << 3 ) ; h ^= ( h > > > 6 ) ; h += ( h << 2 ) + ( h << 14 ) ; return h ^ ( h > > > 16 ) ; }
gets hash code for a given object .
