Я пытаюсь реализовать кукушку хеширования с хэш-функций: hash1: key.hashcode()% емкости hash2: key.hashcode()/емкость емкость%Кукушка хэширования Коллизии приводят к переполнению
С бесконечным контроль цикла и повторный метод удвоения. Программа отлично работает с небольшим количеством данных, но когда данные становятся большими (около 20 тыс. Элементов), программа продолжает переписываться до тех пор, пока пропускная способность не будет переполнена.
Я понял, что в основном бесконечные причины перехвата данными с точно таким же хэш-кодом. После повторного поединка будут случаи, когда другие данные получат один и тот же хэш-код и снова будут перезаписываться.
Я уже использую встроенный хэш-код Java, но вероятность того же хэш-кода по-прежнему высока, когда данные большие. Даже я немного изменил метод hashcode, в конце концов есть еще данные с одним и тем же хэш-кодом.
Итак, какой хэш-метод следует использовать для предотвращения этого?
Вы уверены, что ваши элементы данных уникальны? – vish4071
Они не уникальны, но я уверен, что существующие элементы обрабатываются без вставления. Кроме того, я уже проверил, распечатывая данные (тип String в этом случае). Проблема, вызываемая другой строкой, но имеющая один и тот же хэш-код. – concuagia
Хорошо, в этом случае используйте пользовательскую хэш-функцию. Что может быть вашей «способностью»? – vish4071