Java/문법
Stream - 데이터를 효율적으로 처리해보자
JuNo_12
2025. 4. 18. 13:49
Stream 이란?
: 데이터를 효율적으로 처리할 수 있는 흐름
- 선언형 스타일로 가독성이 굉장히 뛰어나다.
- 데이터 준비 → 중간 연산 → 최종 연산 순으로 처리 ( Stream -> map -> collect )
- 스트림은 컬렉션(List, Set 등)과 함께 자주 활용
람다식을 매개변수에 직접 활용한 예시 + 중간 연산 단계에서 .filter 사용
public class Main {
public static void main(String[] args) {
// ArrayList 선언
List<Integer> arrayList = new ArrayList<>(List.of(1, 2, 3, 4, 5));
// 람다식을 직접 활용
List<Integer> ret5 = arrayList.stream() // 1. 데이터 준비
.map(num -> num * 10) // 2. 중간 연산 등록
.collect(Collectors.toList()); // 3. 최종 연산
System.out.println("ret5 = " + ret5);
List<Integer> ret6 = arrayList.stream() // 1. 데이터 준비: 스트림 생성
.filter(num -> num % 2 == 0) // 2. 중간 연산: 짝수만 필터링
.map(num -> num * 10) // 3. 중간 연산: 10배로 변환
.collect(Collectors.toList()); // 4. 최종 연산: 리스트로 변환
}
}
API 종류
| 단계 | 설명 | 주요 API |
| 1. 데이터 준비 | 컬렉션을 스트림으로 변환 | stream(), parallelStream() |
| 2. 중간 연산 등록 (즉시 실행되지 않음) |
데이터 변환 및 필터링 | map(), filter(), sorted() |
| 3. 최종 연산 | 최종 처리 및 데이터 변환 | collect(), forEach(), count() |