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

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

2 ответов


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


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