-
HashMap vs LinkedHashMap 차이점 및 사용CS/자료구조 2023. 4. 25. 22:30
Java springboot 서버단에서 일부 작업을 하다가, 객체로 데이터를 전달해줘야되는 과정에서 순서를 보장해야되는 경우가 있었다. 이렇게 객체를 담는데 순서를 보장하며 넣어주고 싶을 때 사용하는 자료구조가 "LinkedHashMap" 이다.
LinkedHashMap은 Map에 입력된 순서를 기억하는 자료구조이다.
LinkeHashMap에 저장되는 키와 값은 Map.Entry 클래스를 구현한 Node 클래스에 저장된다.
Node 클래스에는 before, after 멤버가 있는데 LinkedHashMap에 입력된 순서에 따라 연결 리스트 구조를 형성한다.
LinkedHashMap은 기본적으로 HashMap이라 사용법이 HashMap과 동일하다.
차이점을 살펴보면 아래와 같다.
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()); } //Key2:Value2 //Key1:Value2 //Key3:Value3
출력값은 위와 같이 입력된 순서와 상관없이 결과가 튀어나온다.
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()); } //Key1:Value1 //Key2:Value2 //Key3:Value3
위와같이 입력된 순서에 따라 튀어나온다.
'CS > 자료구조' 카테고리의 다른 글
Array vs List 차이점, LinkedList, ArrayList (0) 2023.04.25 Collection - List, Set, Map (0) 2023.03.07