protected int getHash(Object o) {
		int hash = o == null ? 0 : o.hashCode();
		hash += (hash << 15) ^ 0xffffcd7d;
		hash ^= (hash >>> 10);
		hash += (hash << 3);
		hash ^= (hash >>> 6);
		hash += (hash << 2) + (hash << 14);
		hash ^= (hash >>> 16);
		return hash;
	}
protected int getHash ( Object o ) { int hash = o == null ? 0 : o . hashCode ( ) ; hash += ( hash << 15 ) ^ 0xffffcd7d ; hash ^= ( hash > > > 10 ) ; hash += ( hash << 3 ) ; hash ^= ( hash > > > 6 ) ; hash += ( hash << 2 ) + ( hash << 14 ) ; hash ^= ( hash > > > 16 ) ; return hash ; }
Get the hash for a given object, apply an additional hash function to reduce
collisions. This implementation uses the same Wang/Jenkins algorithm as
{@link ConcurrentHashMap}. Subclasses can override to provide alternative hashing.
@param o the object to hash (may be null)
@return the resulting hash code