ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL] Map을 List로 가져오기
    TIL(Today I Learned) 2022. 12. 23. 13:18

    *20221223의 회고

     

     

       스프링부트로 회원 도메인과 레포지토리를 만들던 중, Map에 저장한 값들을 List로 변환해서 반환해야 하는 일이 생겼다. 그 과정을 오늘 알게되어 이 부분을 정리해보려 한다.

     

    1. 문제점

    - MemberRepository 인터페이스에서는 findAll() 메서드의 반환값이 List형태이다.

     

     

    - MemberRepository 인터페이스를 구현한 구현체인 MemoryMemberRepository 에서는 회원의 id와 회원을 Map 에 저장하는 방식을 사용한다. 따라서 Map을 List로 바꿔서 반환해줘야 하는 과정 필요!

     

     

    2. 시도한 방법과 해결 방법

    - Map.values()를 이용해 Map에 있는 value들을 다 가져와서 ArrayList의 생성자로 넣어줘서 리스트를 생성한 후 리턴.

     

     

    3. 알게된 점

    • HashMap의 values()는 해당 map의 value 목록을 Collection 형태로 리턴함.
    • List 생성자로 Map을 List로 변환할 수 있다.

     

     

     

    4. 추가로 정리한 것

    • Map : key와 value 쌍으로 데이터를 보관하는 자료구조.
    • HashMap : Map 인터페이스를 구현한 대표적인 Map 컬렉션
    • 해싱을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보임
    • HashMap 함수
      • 선언과 생성 : HashMap <key의 형, value의 형> 객체이름 = new HashMap<>();
      • key 와 value 모두 객체이기 때문에, wrapper 클래스 사용! (int (x) -> Integer(O))
      • map.put('A', 3) : 'A' 라는 key를 가진 객체에 3이라는 value를 넣어서 그 객체를 map에 넣어줌
      • map.get(x) : key가 x인 map의 value 값을 가져온다.
      • map.getOrDefault(x, 0) : key가 x인 map의 value값을 가져오는데, value 값이 없다면 0을 가져온다.
      • map.keySet() : map의 key 값을 모두 출력 (key들을 Set 형태로 반환)
      • map.containsKey('A') : map 객체에 A라는 key값이 있으면 true 리턴, 없으면 false 리턴
      • map.size() : map 객체의 key의 개수를 알려줌
      • map.remove('A') : map에서 A라는 key를 가진 객체 제거, A의 value를 리턴
Designed by Tistory.