В основе HashSet лежит хэш-таблица. 24 Это структура данных, которая позволяет быстро добавлять, удалять и искать элементы. 2 В HashSet каждый элемент имеет свой уникальный хэш-код, который используется для определения его местоположения в хэш-таблице. 2
Элементы в HashSet добавляются по следующему правилу: при добавлении элемента вычисляется его хэш-код и он помещается в соответствующий этому хэш-коду bucket. 2 Если bucket пустой, элемент просто добавляется в него. 2 Если bucket уже содержит элементы, то новый элемент добавляется в конец списка связанных элементов. 2
Если в таблице уже есть элемент с таким же хэш-кодом, то выполняется проверка на равенство. 4 Если элементы равны, то новый элемент не добавляется в коллекцию, иначе он добавляется в таблицу. 4