HashSet과 LinkedHashSet의 차이점은 무엇입니까
-
12-12-2019 - |
문제
나는 것을보고 LinkedHashSet
연장하다 HashSet
그리고 나는 그것이 질서를 유지한다는 것을 알고 있습니다.
그러나 JDK의 코드를 확인해 보면 LinkedHashSet
생성자만 포함하고 구현은 포함하지 않으므로 모든 논리가 다음에서 발생한다고 생각합니다. HashSet
?
그것이 맞다면 왜 그렇게 설계되었는가?매우 혼란스러운 것 같습니다.
편집하다: 질문에 불행한 실수가 있었습니다.나는 썼다 HashMap
그리고 LinkedHashMap
대신에 HashSet
그리고 LinkedHashSet
.가능한 경우 질문에 답변하도록 수정했습니다.
또한 Java 디자이너가 왜 그렇게 구현하기로 결정했는지 궁금했습니다.
해결책
예, LinkedHashMap
슈퍼 생성자를 호출합니다.그것이 하는 한 가지는 init()
슈퍼 생성자에 의해 호출되는 메서드입니다.
그만큼 LinkedHashMap
이다 HashMap
이중 연결 목록 구현이 추가되었습니다.
다른 팁
당신이 말했듯이 두 데이터 구조의 차이점은 LinkedHashMap
이다 HashMap
쌍의 삽입 순서를 유지합니다.
따라서 링크된 항목은 HashMap
표준 방법을 통해 HashMap
추가된 유일한 방법은 다음과 같습니다. 제거EldestEntry(), 데이터 구조의 "목록" 부분을 처리하려는 경우 유용합니다.
제휴하지 않습니다 StackOverflow