Map은 크게 3가지
- HashMap
- TreeMap
- LinkedHashMap
HashMap
Map의 기본형식이다. 키:밸류 인 한쌍으로 데이터를 저장하며
중복된 키가 존재하지않는다.
Map에있는 데이터를(밸류값) 뽑을때, 키를 기준으로 가져온다.
마치 키를 리스트나 배열에존재하는 idx(인덱스)처럼 가져와 밸류를 뽑기때문에
시간복잡도가 O(1)이다.
TreeMap
HashMap과 동일한 기능에 추가 옵션이들어간다.
TreeMap은 데이터가 들어올때마다 Key값에따라 알아서 자동으로 정렬이된다.
LinkedHashMap
HashMap과 동일한 기능에 역시 추가 옵션이 들어간다.
LinkedHashMap은 입력순서를 보장한다.
예를들어 HashMap엔 입력이 C B A 로햇다면, 나중에 맵에있는 모든값을 출력할때 그대로 C B A로 나오는 보장이없다.
LinkedHashMap은 이와같은 문제를 해결해준다.
MultiValueMap
: 키의 중복이 허용
즉 MultiValueMap 은 한 key에 여러 value가 가능하고
Map은 한 value만 가능하다.
중요한 특징중에 하나는 restTemplate의 exchange 메서드의 세번째 파라미터 request에는 무조건 MultiValueMap을 사용해야 한다. -> restTemplate는 spring 5.0 이후부터는 deprecated 됐다.
출처