Вопрос: 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); }