Как hashmap обрабатывает отрицательный хэш-код?

Вопрос: Hashcode имеет тип int, поэтому он может быть отрицательным и положительным. Но HashMap использует hashcode для определения, в каком индексе таблицы ставится ключ + значение, например, hashcode/size_of_table = table_index. Но как HashMap определит, в каком индексе он должен поставить ключ + значение в случае, если hashcode отрицательный? Лучший ответ: С : static int indexFor(int

Вопрос:

Hashcode имеет тип int, поэтому он может быть отрицательным и положительным. Но HashMap использует hashcode для определения, в каком индексе таблицы ставится ключ + значение, например, hashcode/size_of_table = table_index.

Но как HashMap определит, в каком индексе он должен поставить ключ + значение в случае, если hashcode отрицательный?

Лучший ответ:

С :

static int indexFor(int h, int length) { return h & (length-1); }

Оцените статью
Добавить комментарий