Нашел этот код на http://www.docjar.com/html/api/java/util/HashMap.java.html после поиска реализации HashMap.
264 static int hash(int h) {
265 // This function ensures that hashCodes that differ only by
266 // constant multiples at each bit position have a bounded
267 // number of collisions (approximately 8 at default load factor).
268 h ^= (h >>> 20) ^ (h >>> 12);
269 return h ^ (h >>> 7) ^ (h >>> 4);
270 }
Может ли кто-нибудь пролить свет на это? Комментарий говорит нам почему этот код здесь, но я хотел бы понять как это улучшает плохое значение хэша и как это гарантирует, что позиции имеют ограниченное количество коллизий. Что означают эти магические числа?