정리/Java
[stream] map과 forEach
민발자
2024. 11. 29. 10:30
728x90
map이랑 forEach를 언제 사용하는지 정확하게 이해가 안가서 정리
map()
중간연산 스트림의 각 요소를 주어진 변환(매핑) 함수에 따라 새로운 스트림의 요소로 변환
데이터를 변환하는 데 사용
입력 스트림과 출력 스트림의 타입이 다를 수 있음
forEach()
최종연산 스트림의 각 요소를 순회하며 처리하는 동작 수행하고 결과 반환하지 않음
데이터를 변환하지 않고 처리만 수행
보통 데이터 출력, 로그 기록, 누적 작업 등 사이드 이펙트를 처리할 때 사용
map()과 forEach()의 차이
특성 | map() | forEach() |
목적 | 데이터를 변환(매핑) | 데이터를 처리(소비) |
역할 | 새로운 스트림을 생성 | 스트림의 각 요소를 처리 |
종류 | 중간 연산 | 최종 연산 |
실행 시점 | 최종 연산이 호출될 때 실행 | 즉시 실행 |
결과 | 변환된 요소를 가진 새로운 스트림 반환 | 반환값 없음 |
재사용 가능성 | 변환된 스트림을 연속적인 연산에 사용가능 | 스트림이 닫혀 재사용 불가능 |
728x90