Я прошел через add
метод HashSet
. Отмечено, что
Если этот набор уже содержит элемент, вызов оставляет неизменным и возвращает false.
Но метод add
внутренне сохраняет значения в HashMap
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
В методе put
HashMap
указано, что
Связывает указанное значение с указанным ключом на этой карте. Если ранее карта содержала отображение для ключа, старое значение заменяется.
Итак, если метод put
HashMap
заменяет старое значение, как метод HashSet
add
оставляет набор неизменным в случае повторяющихся элементов?