Junior — Middle
93
La structure de données HashSet utilise-t-elle une implémentation interne basée sur HashMap?
Réponse de l'IA
sobes.tech IA
Да, в 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;
}
}