¿Por qué la implementación de HashSet en Sun Java utiliza HashMap como respaldo?

Mirando la fuente de Java 6,HashSet<E> en realidad se implementa usandoHashMap<E,Object>, utilizando una instancia de objeto ficticio en cada entrada del conjunto.

Creo que desperdicia 4 bytes (en máquinas de 32 bits) para el tamaño de la entrada en sí.

Pero, ¿por qué todavía se usa? ¿Hay alguna razón para usarlo además de facilitar el mantenimiento de los códigos?

Respuestas a la pregunta(7)

Su respuesta a la pregunta