Почему реализация HashSet в Sun Java использует HashMap в качестве своей поддержки?
Глядя на источник Java 6,HashSet<E>
на самом деле реализуется с помощьюHashMap<E,Object>
, используя фиктивный экземпляр объекта в каждой записи набора.
Я думаю, что тратит 4 байта (на 32-битных машинах) на размер самой записи.
Но почему это все еще используется? Есть ли какая-либо причина использовать его, кроме того, чтобы упростить поддержку кодов?