Notice
Recent Posts
Recent Comments
Link
05-05 20:17
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

<<개발일지>>

Java의 Stream API에서 사용되는 map 메서드와 메서드 참조(method references) 본문

Java 문법

Java의 Stream API에서 사용되는 map 메서드와 메서드 참조(method references)

개발하는지호 2024. 2. 6. 14:42

map 메서드와 메서드 참조

 

이 것을 쓰는 방식에는 두 가지 방식이 있는데 

 

하나는 메서드를 참조하는 것이고, 또 다른 하나는 생성자를 참조하는 것이다.

 

1. 생성자를 참조하는 방식

 List<ArticleResponse> articles = blogService.findAll()
                .stream()
                .map(ArticleResponse::new)
                .toList();

 

이렇게 하면 ArticleResponse 클래스의 생성자에 blogServie.findAll()로 찾은 값들 각각을 파라미터 값으로 넣어 ArticleResponse 타입으로 변환한 뒤 toList()를 통해 List를 만들어준다.

 

*이때 오버로드로 여러 생성자가 있다면 ArticleResponse::new는 스트림을 통해 전달되는 각 요소의 타입과 일치하는 생성자를 찾아 호출합니다.

.map(article -> new ArticleResponse(article))

 

 

 

2. 메서드를 참조하는 방식

List<String> numbers = Arrays.asList("1", "2", "3");
List<Integer> intNumbers = numbers.stream()
                                  .map(Integer::parseInt) // String을 Integer로 변환
                                  .collect(Collectors.toList());

 

numbers List의 각각 성분을 Integer 클래스에 있는 parseInt 메서드 사용하여 변환 한다. 그 다음 

.collect(Collector.toList()) 로 변환한 타입의 리스트로 만들어 준다.

 

*.collect(Collector.toList())  --> 현재는 stream()이 toList() 메서드도 사용할 수 있다. 따라서 그냥 위의 코드처럼 toList() 만 써도 된다.