Map과 MultiValueMap

0

개념정리

목록 보기
8/33

Map은 크게 3가지

  1. HashMap
  2. TreeMap
  3. 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 됐다.

➡︎ 언제 사용하는가?

  1. Map을 사용하고싶을때 (시간복잡도)
  2. 중복된키로 들어오는 Value값들을 온전하게 저장하고싶을때
  3. HashMap으로 쓰는것보다 깔끔한 코딩을 원할때

출처

profile
백엔드를 공부하고 있습니다.

0개의 댓글