역시나 코딩테스트 문제를 풀다 HashMap이랑 LinkedHashMap이 약간 헷갈려 정리할려고 글을 쓴다.
HashMap의 경우 단점이 하나 있다. 그 단점은 put을 통해 데이터나 객체를 넣을 때 key의 순서가 지켜지지 않는다는 것이다. 코드상으로 순차적으로 key, value를 넣어도, 실제 HashMap에서는 해당 순서가 지켜지지 않는다.
HashMap<String, String> = new HashMap<>();
map.put("강아지", "참새");
map.put("고양이", "토끼");
map.put("호랑이", "사자");
이렇게 key와 value를 해시맵에 넣는다고 가정하면, 다음과 같이 저장된다는 것이다
| key | value |
|---|---|
| 고양이 | 토끼 |
| 호랑이 | 사자 |
| 강아지 | 참새 |
그래서 입력된 key의 순서가 보장되어야 한다면 LinkedHashMap 을 사용하면 된다.
LinkedHashMap 은 put을 통해 입력된 순서대로 key가 보장되므로 해당 문제를 해결할 수 있다. 사용법은 다음과 같다.
LinkedHashMap<String, String> = new LinkedHashMap<>();
map.put("강아지", "참새");
map.put("고양이", "토끼");
map.put("호랑이", "사자");
| key | value |
|---|---|
| 강아지 | 참새 |
| 고양이 | 토끼 |
| 호랑이 | 사자 |
그러면 HashMap이랑 비교했을 때 LinkedHashMap이 어떤 특성을 가지고 있는지 알아보자.
key-value 쌍으로 저장한다.https://fruitdev.tistory.com/141
https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html
https://da-nyee.github.io/posts/java-hashmap-vs-likedhashmap/