가장 큰 차이는 삽입시의 순서가 지켜지느냐이다.
HashMap의 경우 순서가 보장되지 않는다( 사전순도 아니다)
하지만 LinkedHashMap의 경우 넣은 순서대로 정렬이 된다.
반복문으로 키값을 출력시 알 수 있다.
성능의 차이는 있지만 크게 고려할 부분은 아닐 것이다.
공통점
- 데이터를 key-value 쌍으로 저장한다.
- 비동기로 처리된다.
Key
- 중복을 허용하지 않는다.
- 하나의 null 값을 저장할 수 있다.
Value
- 중복을 허용한다.
- 여러 개의 null 값을 저장할 수 있다.
차이점
HashMap
- 데이터의 삽입 순서를 보장하지 않는다.
- AbstractMap 클래스를 상속하고, Map 인터페이스를 구현한다.
- 연결리스트로 이루어진 배열로 구현됨
LinkedHashMap
- 데이터의 삽입 순서를 보장한다.
- HashMap 클래스를 상속하고, Map 인터페이스를 구현한다.
- 양방향 연결 버킷으로 구현됨
성능
Create
- 👍HashMap : LinkedHashMap👎 (오래 걸림)
Iterate
- (오래 걸림)👎 HashMap : LinkedHashMap 👍
Access
- (오래 걸림) 👎 HashMap : LinkedHashMap 👍
결론
- HashMap보다 LinkedHashMap의 성능이 약간 더 우세하지만, 전체적인 성능에는 큰 차이가 없다.
- HashMap은 순서를 보장하지 않아도 될 때, LinkedHashMap은 순서를 보장해야 될 때 사용한다.
'Problem Solving > 자바 문법' 카테고리의 다른 글
HashSet vs TreeSet vs LinkedHashSet (1) | 2024.02.06 |
---|---|
Collections 시간복잡도 정리 (1) | 2024.02.06 |
정렬 .sort() (1) | 2024.02.05 |
자료형 선언시 기본값 (0) | 2024.01.31 |
진수 바꾸기 (0) | 2024.01.30 |