Junior — Middle
88
Da li struktura podataka HashSet koristi internu implementaciju zasnovanu na HashMap?
Одговор од АИ
sobes.tech АИ
Да, в Java структура данных HashSet реализована поверх HashMap. Внутри HashSet используется HashMap, где элементы множества выступают в роли ключей, а значением для всех ключей служит один и тот же объект-заглушка. Это позволяет эффективно обеспечивать уникальность элементов и быстрый доступ.
Пример упрощённой реализации HashSet:
public class MyHashSet<E> {
private transient HashMap<E, Object> map;
private static final Object PRESENT = new Object();
public MyHashSet() {
map = new HashMap<>();
}
public boolean add(E e) {
return map.put(e, PRESENT) == null;
}
public boolean contains(E e) {
return map.containsKey(e);
}
public boolean remove(E e) {
return map.remove(e) == PRESENT;
}
}