JAVA

📦 Java Stream의 핵심, collect() 완전 정복

IT Lab 2025. 6. 23. 22:00

✅ 1. collect()란?

collect()Stream의 요소들을 하나의 결과로 모으는 최종 연산입니다. 주로 List, Set, Map 등 컬렉션으로 수집하거나, 집계, 문자열 연결 등에 활용됩니다.

List<String> list = names.stream()
    .collect(Collectors.toList());

Collectors 클래스에는 다양한 수집 전략이 미리 구현되어 있어요.


✅ 2. 자주 쓰이는 Collectors

메서드 설명
toList() List로 수집
toSet() Set으로 수집
joining() 문자열 연결 (구분자 옵션 있음)
counting() 개수 세기
summarizingInt() 합계, 평균, 최댓값, 최솟값 한번에 계산
groupingBy() 그룹핑 (Map으로 분류)
partitioningBy() true/false 조건으로 분할

✅ 3. 예제 코드 모음

🔹 리스트로 수집

List<String> result = list.stream()
    .collect(Collectors.toList());

🔹 문자열 연결

String joined = list.stream()
    .collect(Collectors.joining(", "));

🔹 개수 세기

long count = list.stream()
    .collect(Collectors.counting());

🔹 그룹핑

Map<String, List<String>> grouped = list.stream()
    .collect(Collectors.groupingBy(s -> s.substring(0, 1)));

✅ 4. 실무 팁

  • Collectors.joining()은 CSV, 로그 문자열 등 만들 때 유용합니다.
  • groupingBy()mapping()을 함께 쓰면 다차원 그룹핑도 가능합니다.
  • collect()는 가장 강력하고 자주 쓰이는 최종 연산이므로 잘 익혀두면 실무에 매우 유용합니다.