Как внутри устроен HashSet?
Ответ:
Под капотом это HashMap, в котором ключи - это объекты, которые мы хотим хранить в HashSet, а значения - объект класса Object.
Конкретно,
конструктор:
public HashSet() {
map = new HashMap<>();
}Добавление:
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}