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://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html#identity--
반응형