Метод hashCode() Java String возвращает хэш-код для строки. Значение хэш-кода используется в коллекциях на основе хэширования, таких как HashMap, HashTable и т. д. Метод hashCode() должен быть переопределен в каждом классе, который переопределяет метод equals(), чтобы избежать непредсказуемого поведения при использовании в коллекциях на основе хэширования.
Подробнее: Контракт между hashCode() и equals()
1. API String.hashCode()
Синтаксис API hashCode() следующий. Он не принимает никаких аргументов и возвращает целое число, представляющее значение хэш-кода для этого объекта.
public int hashCode();
Хэш-код для объекта String вычисляется следующим образом:
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
где :
- s[i] – это i-й символ строки
- n – длина строки, а
- ^ – обозначает возведение в степень
Метод hashCode() строки переопределяет метод Object.hashCode(). Этот метод возвращает хэш-код как целочисленное значение.
2. Пример строки hashCode()
Программа Java для вычисления хэш-кода строки. В данном примере мы вычисляем хэш-код двух разных строк, и обе производят разные хэш-коды.
System.out.println( "howtodoinjava.com".hashCode() );System.out.println( "hello world".hashCode() );
Вывод программы.
18941452641794106052