Why do you think they decided that the best hash function for an int was the int?
/** * Returns a hashcode for the specified value. * * @return a hash code value for the specified value. */ public static int hash(int value) { return value; //return value * 0x278DDE6D; // see org.apache.mahout.math.jet.random.engine.DRand /* value &= 0x7FFFFFFF; // make it >=0 int hashCode = 0; do hashCode = 31*hashCode + value%10; while ((value /= 10) > 0); return 28629151*hashCode; // spread even further; h*31^5 */ }