Внутренняя реализация java.util.HashMap и HashSet

Я пытался понять внутреннюю реализациюjava.util.HashMap а такжеjava.util.HashSet.

Следующее - сомнения, всплывающие в моей голове некоторое время:

Какова важность@Override public int hashcode() в HashMap / HashSet? Где этот хеш-код используется внутри?Я обычно видел ключ HashMap бытьString любитьmyMap<String,Object>, Могу ли я сопоставить значения сsomeObject (вместо строки) какmyMap<someObject, Object>? Какие все контракты мне нужно соблюдать, чтобы это произошло успешно?

Заранее спасибо !

РЕДАКТИРОВАТЬ:

Мы говорим, что хеш-код ключа (проверка!) Является фактической вещью, в которую отображается значение в хеш-таблице? И когда мы делаемmyMap.get(someKey); Ява внутренне зоветsomeKey.hashCode() получить число в хэш-таблице для поиска результирующего значения?

Ответ: Да.

РЕДАКТИРОВАТЬ 2:

Вjava.util.HashSetоткуда ключ генерируется для хэш-таблицы? Это из объекта, который мы добавляем, например.mySet.add(myObject); тогдаmyObject.hashCode() собирается решить, где это находится в хэш-таблице? (поскольку мы не даем ключи в HashSet).

Ответ: Добавленный объект становится ключом. Значение пустышка!

Ответы на вопрос(9)

Ваш ответ на вопрос