LinkedHashMap

민선규·2024년 6월 4일
0

JAVA

목록 보기
17/25
post-thumbnail

알고리즘을 공부하면서 HashMap에 대해서 학습하고 사용해 본 경험이 있습니다. 그런데 최근에 레퍼런스를 참고하는 과정에서 LinkedHashMap을 자주 보게되었습니다. 이번 기회에 LinkedHashMap에 대해서 학습한 내용을 정리해보겠습니다.

LinkedHashMap

LinkedHashMap에 대해서 정리하기 전에 간단하게 Map에 대해서 정리해보겠습니다. Map은 key, value 형태로 데이터를 저장하는 자료구조입니다. key를 기준으로 value를 저장하는 형태입니다.

HashMap은 key를 Hash Method를 이용해 계산을 수행한 후, 그 결과값을 배열의 인덱스로 사용하여 저장하는 자료구조입니다.

그럼 LinkedHashMap은 어떤 자료구조일까요? 바로 순서라는 개념이 포함되어 있는 HashMap입니다. 기존 HashMap은 순서라는 개념이 없지만 LinkedHashMap은 순서라는 개념이 포함되어 있습니다.

사용 예시

LinkedHashMap에 특징에 대해서 알아보았습니다. 그럼 이러한 특징을 어디에 활용할 수 있을까요? 바로 캐시를 구현할 때 사용할 수 있습니다. 그 중에서도 LRU(Least Recently Used) 캐시 구현에 매우 유용합니다.

LinkedHashMap을 활용하여 가장 마지막에 사용한 데이터가 가장 앞에 위치하여 관리를 쉽게 할 수 있습니다. 주의할 점으로는 accessOrder 옵션을 true로 설정해야 요소가 검색 또는 수정될 때 순서를 맨 뒤로 위치할 수 있습니다.

LinkedList로 만들면 안될까?

그 이유로는 가장 먼저 성능적으로 좋지 않습니다. Hash의 경우 O(1)의 접근속도를 가지지만 LinkedList는 O(N)이기 때문입니다. 또한 LinkedList로 구현하는 것은 꽤 복잡하다는 단점이 있습니다.

참고 문서 및 링크

0개의 댓글

관련 채용 정보