Разница в хэш-карте в java 7 и 8

В чем разница в хэш-карте Java 7 и Java 8, когда оба работают по алгоритму постоянной сложности? В соответствии с моим пониманием хэш-поиска карт в постоянное время, генерируя хэш-ключ для объекта через хеш-функцию.

Ответ 1

В Java 7 после вычисления хеша из хеш-функции, если более одного элемента имеет один и тот же хеш, чем при поиске по линейному поиску, поэтому сложность (n). В Java 8 этот поиск выполняется бинарным поиском, поэтому сложность станет log (n). Таким образом, это понятие неверно, что хеш-карта ищет объект в постоянной сложности, потому что это не так.

Ответ 2

Вы можете найти последние проблемы специалиста Java newsletter очень полезными. В течение многих лет он изучает хеширование на Java; например, указывая на то, что вам лучше убедиться, что ваши ключи карты реализуют Comparable (при использовании Java8).