collect(Collectors.toList())
는 자바 스트림 API의 최종 연산 중 하나로, 스트림의 요소들을 리스트로 수집하여 반환하는 역할을 합니다. 이 메서드를 이해하기 위해 자바 스트림과 컬렉터의 개념을 간략히 설명하겠습니다.
스트림(Stream): 자바 스트림은 데이터의 흐름을 추상화한 것으로, 컬렉션(예: 리스트, 셋)의 데이터를 함수형 스타일로 처리할 수 있게 합니다. 스트림은 중간 연산(예: map
, filter
)과 최종 연산(예: collect
, forEach
)으로 구성됩니다.
컬렉터(Collector): 스트림의 요소들을 다양한 방식으로 결과를 수집할 수 있도록 도와주는 유틸리티 클래스입니다. Collectors
클래스는 자주 사용되는 컬렉터들을 제공합니다.
collect(Collectors.toList())
설명collect
메서드:
Collectors.toList()
:
Collectors
클래스의 정적 메서드로, 스트림의 요소들을 리스트로 수집하는 컬렉터를 반환합니다.다음은 collect(Collectors.toList())
를 사용한 예시입니다:
List<String> fruits = Arrays.asList("apple", "banana", "cherry");
List<String> uppercaseFruits = fruits.stream() // 리스트를 스트림으로 변환
.map(String::toUpperCase) // 각 요소를 대문자로 변환 (중간 연산)
.collect(Collectors.toList()); // 변환된 요소들을 리스트로 수집 (최종 연산)
System.out.println(uppercaseFruits); // [APPLE, BANANA, CHERRY]
fruits.stream()
:
fruits
리스트를 스트림으로 변환합니다.fruits
의 각 요소를 함수형 스타일로 처리할 수 있습니다..map(String::toUpperCase)
:
String::toUpperCase
함수를 적용합니다..collect(Collectors.toList())
:
다음은 collect(Collectors.toList())
를 사용하는 전체 예제 코드입니다:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "cherry");
List<String> uppercaseFruits = fruits.stream() // 리스트를 스트림으로 변환
.map(String::toUpperCase) // 각 요소를 대문자로 변환 (중간 연산)
.collect(Collectors.toList()); // 변환된 요소들을 리스트로 수집 (최종 연산)
System.out.println(uppercaseFruits); // [APPLE, BANANA, CHERRY]
}
}
collect(Collectors.toList())
: 스트림의 요소들을 리스트로 수집하여 반환하는 최종 연산입니다.이를 통해 스트림의 요소들을 원하는 방식으로 처리하고, 최종 결과를 리스트로 모아볼 수 있습니다.