Вот исходный код JDK 11 для String.hashCode():
Код: Выделить всё
/** Cache the hash code for the string */
private int hash; // Default to 0
public int hashCode() {
int h = hash;
if (h == 0 && value.length > 0) {
hash = h = isLatin1() ? StringLatin1.hashCode(value)
: StringUTF16.hashCode(value);
}
return h;
}
Я нашел другие вопросы/ответы, которые приближаются к этой проблеме... но ни один из них не дает точного ответа:
- Может ли непустая строка иметь нулевой хеш-код?
- Почему String hashCode() не кэширует 0?
- https://stackoverflow.com/a/64082954/257299
Подробнее здесь: https://stackoverflow.com/questions/652 ... -code-zero
Мобильная версия