Java String hashCode()

Метод 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
Прокрутить вверх