본문 바로가기
Old Posts/Java

[Java] LinkedHashMap 사용법 및 예제 - HashMap과 차이점

by A6K 2021. 6. 16.

LinkedHashMap

Map 인터페이스를 구현한 클래스 중에 TreeMap과 HashMap은 매우 단순해서 많이 사용된다. 그 외에 조금 특이한 Map 클래스들이 있는데 LinkedHashMap이 그 중 하나다.

LinkedHashMap은 Map에 입력된 순서를 기억하는 자료구조다. LinkedHashMap에 저장되는 키와 값은 Map.Entry 클래스를 구현한 Node 클래스에 저장된다. Node 클래스에는 before, after 멤버가 있는데, LinkedHashMap에 입력된 순서에 따라 연결 리스트 구조를 형성한다.

LinkedHashMap 사용법

LinkedHashMap은 기본적으로 HashMap이다. 사용법은 HashMap과 동일하다. HashMap에 대해서 정리해 놓은 포스트를 참고하자.

 

[Java] HashMap 사용법 및 예제

HashMap 자바에서 제일 많이 사용되는 컬렉션 객체 중 하나가 바로 HashMap 일 것이다. HashMap은 Map 인터페이스를 구현한 대표적인 클래스로 Map의 특성을 그대로 이어받았다. HashMap은 키와 값으로 구

hbase.tistory.com

HashMap과 LinkedHashMap의 차이점은 다음 코드를 실행시켜보면 된다. 우선 HashMap을 만들고 값을 추가하고 순회해보자.

HashMap<String, String> map = new HashMap<>();
map.put("Key1", "Value1");
map.put("Key2", "Value2");
map.put("Key3", "Value3");

for (Map.Entry<String, String> entry : map.entrySet()) {
  System.out.println(entry.getKey() + ":" + entry.getValue());
}

이 코드를 실행시켜보면 

입력된 순서와 상관없이 결과가 튀어나온다.

이제 LinkedHashMap으로 실행해보자.

LinkedHashMap<String, String> map = new LinkedHashMap<>();
map.put("Key1", "Value1");
map.put("Key2", "Value2");
map.put("Key3", "Value3");

for (Map.Entry<String, String> entry : map.entrySet()) {
  System.out.println(entry.getKey() + ":" + entry.getValue());
}

이 코드를 실행시켜보면

입력된 순서에 따라 튀어나온다. 

댓글