Возможный дубликат:
Понимание странной хэш-функции Java
static int hash(int h) {
// This function ensures that hashCodes that differ only by
// constant multiples at each bit position have a bounded
// number of collisions (approximately 8 at default load factor).
h ^= (h >>> 20) ^ (h >>> 12);
return h ^ (h >>> 7) ^ (h >>> 4);
}
Я не совсем понимаю принцип алгоритма этой реализации. Любое объяснение или любое другое сообщение, на которое я могу ссылаться? Спасибо!
UPDATE
Спасибо всем за ответы и комментарии. На самом деле я понимаю, как работает хеш, но не знаю, почему этот код обеспечит a bounded number of collisions
, как говорится в комментарии. Есть ли теоретическая проверка?