TIL
Stream() 사용 방법.
Big Iron
2023. 3. 20. 18:15
public List<PostResponseDto> getAllPost(User user) {
// 모든 게시글 작성일별 내림차순 리스트
List<Post> posts = postRepository.findAllByOrderByCreatedAtDesc();
List<PostResponseDto> postList = new ArrayList<>();
for (Post post : posts) {
postList.add(new PostResponseDto(post, isLike));
}
return postList;
}
예를 들어 위와 같은 전체 게시글을 조회하는 기능이 있다 가정하고 Stream을 사용해보자.
postRepository.findAllByOrderByCreatedAtDesc().stream().map(post -> new PostResponseDto(post)).collect(Collectors.toList());
map 안의 코드를 잘 봐야 하는데 post 형식을 PostResponseDto 형식으로 형변환 한다고 생각하면 편하다.
하지만 map을 조금 더 짧게 사용할 수 있고 적용하면 아래와 같다.
return postRepository.findAllByOrderByCreatedAtDesc().stream().map(PostResponseDto::new).collect(Collectors.toList());