본문 바로가기

프로그래밍/java

[Java] HashMap, LinkedHashMap

헷갈렸었던 HashMap과 LinkedHashMap의 차이에 대한 마지막 정리...ㅎㅎ

 

 

HashMap 

HashMap은 연관 배열을 저장하기 위한 자료구조이다.

연관배열은 키(Key)와 값(value)을 쌍으로 함께 저장하기 위한 구조이다. 즉, 키를 통해서 값을 쉽게 빼내기 위함을 목적을 두고 있다. 연관배열은 맵(Map) 또는 딕셔너리 (Dictionary)라는 이름으로 불린다. 

Hash 값은 순서를 보장하지 않기 때문에 그에 보완하기 위해 나온 것이 LinkedHashMap 이다. 

 

LinkedHashMap

HashMap과 달리 순서가 보장되어야 할 때 사용하는것이 LinkedHashMap이다. 

즉, HashMap의 모든 기능을 보장하고 입력된 자료의 순서를 보관하는 것이다. 

둘의 성능차이에는 크게 차이가 나지는 않는다. 하지만 LinkedHashMap이 맵을 create할 때는 시간이 조금 더 걸리지만, Acess할때는 더 빠르다고 한다.