A hastable
использует некоторую хеш-функцию для хранения объекта.
Эта хеш-функция по существу вычисляет положение объекта в таблице.
Если мы используем HashTable
или HashMap
, а размер не может вместить больше элементов, то эти коллекции изменяются, чтобы вместить больше элементов.
Это означает, что каждый сохраненный элемент должен быть повторно обработан для вычисленияновая позиция в новом большем столе.
У меня следующий вопрос (что вышеизложенное верно):
Я прочитал, что String
вычисляет его hashcode
, используя символы, которые он хранит, и дополнительно, что hashvalue
хранится внутри(кэшируется) для лучшей производительности, так как не нужно пересчитывать.
Это часть, которую я не понимаю. Если hashcode
основан на символах, которые хранит String
, то как рассчитывается позиция в hashtable
?
Есть ли какая-то дополнительная логика, использующая hashcode
из String
?То есть String
hashcode
на самом деле не hashvalue
?