JAVA

List를 Map으로 변환하기

잔망루피 2022. 7. 27. 22:21
Map<String, PostResponseDto> map=postResponsedtoList.stream()      
        .collect(Collectors.toMap(P -> P.getId().toString(), Function.identity()));

stream()은 데이터 소스를 추상화하고, 다양한 연산을 이용해 복잡한 작업들을 간단히 처리할 수 있다.

스트림은 내부 반복으로 작업을 처리한다.

public static <T,K,U> Collector<T,?,Map<K,U>> toMap(Function<? super T,? extends K> keyMapper,
                                                    Function<? super T,? extends U> valueMapper)

KeyMapper는 key, valueMapper는 vlaue다.

Long 타입의 id를 String 타입으로 변환해 key로 사용했다.

PostResponseDto 객체를 value로 사용했다.

위 코드에서 P는 PostResponseDto 객체다.

P.getId().toString()으로 객체의 id를 가져와 String으로 변환한다.

Function.identity()는 입력을 반환한다.

collect()는 stream의 최종 연산

 

 

 

참고 👇

https://stackoverflow.com/questions/41876122/spring-data-jpa-repository-findall-to-return-map-instead-of-list

 

Spring Data: JPA repository findAll() to return *Map instead of List?

I have a Spring Data JPA repository interface that looks something like this: @Repository public interface DBReportRepository extends JpaRepository<TransactionModel, Long> { List<

stackoverflow.com

 

https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html#identity--

 

Function (Java Platform SE 8 )

 

docs.oracle.com

 

반응형

'JAVA' 카테고리의 다른 글

jjwt  (0) 2023.01.21
TreeMap  (0) 2022.07.28
Map을 List로 변환해서 PageImpl에 담기  (0) 2022.07.27
Build  (0) 2022.04.29
Character  (0) 2021.10.24