в чем разница между HashSet и LinkedHashSet

Я видел, что LinkedHashSet расширяет HashSet, и я знаю, что это сохраняет порядок.
Однако при проверке кода в JDK кажется, что LinkedHashSet содержит только конструктор и не содержит реализации, поэтому я предполагаю, что вся логика происходит в HashSet?
Если правильно, а почему так задумано? это кажется очень запутанным.

EDIT: в вопросе допущена досадная ошибка. Я написал HashMap и LinkedHashMap вместо HashSet и LinkedHashSet. Я исправил вопрос, ответьте на него, если возможно.
Кроме того, мне было интересно, почему разработчики Java решили реализовать это именно так.


person oshai    schedule 21.05.2012    source источник
comment
Где вы увидели, что он содержит только конструктор? В этом классе есть множество методов, некоторые из которых переопределяют методы HashMap. См., например, здесь: kickjava.com/src/java/util/LinkedHashMap.java .htm   -  person Guillaume Polet    schedule 21.05.2012
comment
Перепроверьте код.   -  person jmj    schedule 21.05.2012
comment
Дубликат stackoverflow. ком/вопросы/2889777/   -  person Bhavik Ambani    schedule 21.05.2012
comment
Я отредактировал вопрос, ищу новые ответы относительно LinkedHashSet и HashSet   -  person oshai    schedule 12.06.2012


Ответы (2)


Да, LinkedHashMap вызывает свой суперконструктор. Во-первых, он переопределяет метод init(), который вызывается суперконструктором.

LinkedHashMap — это HashMap с добавленной реализацией двусвязного списка.

person Buhake Sindi    schedule 21.05.2012
comment
Я отредактировал вопрос, ищу новые ответы относительно LinkedHashSet и HashSet - person oshai; 12.06.2012

Как вы сказали, разница между двумя структурами данных заключается в том, что LinkedHashMap является HashMap, которые сохраняют порядок вставки пар.

Таким образом, связанный предназначен для использования в качестве HashMap с помощью стандартных методов HashMap, и единственный добавленный метод - removeEldestEntry(), полезно, если вы хотите работать со "списком" в структуре данных.

person Dario    schedule 21.05.2012
comment
Я отредактировал вопрос, ищу новые ответы относительно LinkedHashSet и HashSet - person oshai; 12.06.2012