코드 공부하다가 LinkedMultiValueMap을 발견하게 됐다. 처음 보는 Map이라 공부할 목적으로 작성하는 글. 근데 별 특이점 없이 Map<K, List<V>>를 쉽게 사용하고 싶을 때 사용할 수 있는 클래스였음.
JAVA API가 아니라 Spring API인 점에 주의.
MultiValueMap<K, V>
Spring 공식 문서
LinkedMultiValueMap의 조상이라 먼저 보기로 함
정의

- JAVA API가 아닌 만큼 package는 org.springframework.util
- 정의 : 여러 값을 저장하는 Map 인터페이스를 상속함
Map<K, List<V>>를 상속했다는 데서 대충 느낌이 옴
- 클래스가 아닌 인터페이스
- 신기한 건 HttpHeaders와 WebSocketHttpHeaders가 이걸 상속했다는 것. 그런데 왜 이 인터페이스를 처음 들어봤지. 신기함. StompHeaders는 나중에 찾아보기.
메서드

LinkedMultiValueMap<K,V>
스프링 공식문서
정의

- ArrayList 안에 여러 값을 저장하는 LinkedHashMap 형태의 MultiValueMap 구현체
- Map 구현체라 thread-safe하지 않다고 함. 애초에 single thread에서만 사용할 목적으로, request 객체에서 노출된 데이터 구조를 위해 설계했다고.
생성자

메서드

- MultiValueMapAdapter의 메서드

참고
Spring 공식 문서 - MultiValueMap
Spring 공식 문서 - LinkedMultiValueMap