Есть ли способ проверить качество хэш-функции? Я хочу иметь хороший спред при использовании в хеш-таблице, и было бы замечательно, если бы это было подтверждено в unit test.
EDIT. Для выяснения моей проблемы было то, что я использовал значения long
в Java таким образом, что первый 32-разрядный код кодировал идентификатор, а второй 32-разрядный кодировал другой идентификатор. К сожалению, хэш Java длинных значений просто XOR - первые 32 бит со вторыми 32 битами, что в моем случае привело к очень низкой производительности при использовании в HashMap
. Поэтому мне нужен другой хеш и хотелось бы иметь Unit Test, чтобы эта проблема больше не ползла.