Зачем нужна hash функция

«Зачем нужна hash функция» — вопрос из категории Алгоритмы и структуры данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Хеш-функция преобразует произвольные данные в фиксированное значение (хеш), что полезно для:

  1. Быстрого поиска – хеш-таблицы (HashMap) используют хеш для O(1) доступа.
  2. Проверки целостности – сравнение хешей файлов выявляет изменения.
  3. Безопасности – хранение хешей паролей вместо самих паролей (с солью).

Пример с hashCode() в Java:

String str = "Hello";
int hash = str.hashCode(); // Возвращает хеш-код строки
System.out.println(hash); // Например, 69609650

Важно: Хорошая хеш-функция минимизирует коллизии (разные входные данные → одинаковый хеш).