Почему класс в Java называется HashSet?

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

Ответ

Название HashSet образовано от двух ключевых концепций:

  • Set: Означает, что класс реализует интерфейс java.util.Set. Коллекция Set гарантирует уникальность элементов — дубликаты не допускаются.
  • Hash: Указывает на внутреннюю реализацию. HashSet хранит элементы в хеш-таблице, что обеспечивает высокую производительность для основных операций (add, remove, contains) — в среднем O(1).

Пример:

Set<String> uniqueNames = new HashSet<>();
uniqueNames.add("Анна");
uniqueNames.add("Борис");
uniqueNames.add("Анна"); // Дубликат игнорируется
System.out.println(uniqueNames); // [Анна, Борис] (порядок не гарантирован)

Таким образом, HashSet — это реализация интерфейса Set, использующая хеширование для эффективного хранения уникальных элементов.