문제

나는 것을보고 LinkedHashSet 연장하다 HashSet 그리고 나는 그것이 질서를 유지한다는 것을 알고 있습니다.
그러나 JDK의 코드를 확인해 보면 LinkedHashSet 생성자만 포함하고 구현은 포함하지 않으므로 모든 논리가 다음에서 발생한다고 생각합니다. HashSet?
그것이 맞다면 왜 그렇게 설계되었는가?매우 혼란스러운 것 같습니다.

편집하다: 질문에 불행한 실수가 있었습니다.나는 썼다 HashMap 그리고 LinkedHashMap 대신에 HashSet 그리고 LinkedHashSet.가능한 경우 질문에 답변하도록 수정했습니다.
또한 Java 디자이너가 왜 그렇게 구현하기로 결정했는지 궁금했습니다.

도움이 되었습니까?

해결책

예, LinkedHashMap 슈퍼 생성자를 호출합니다.그것이 하는 한 가지는 init() 슈퍼 생성자에 의해 호출되는 메서드입니다.

그만큼 LinkedHashMap 이다 HashMap 이중 연결 목록 구현이 추가되었습니다.

다른 팁

당신이 말했듯이 두 데이터 구조의 차이점은 LinkedHashMap 이다 HashMap 쌍의 삽입 순서를 유지합니다.

따라서 링크된 항목은 HashMap 표준 방법을 통해 HashMap 추가된 유일한 방법은 다음과 같습니다. 제거EldestEntry(), 데이터 구조의 "목록" 부분을 처리하려는 경우 유용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top