정리/Java

[stream] map과 forEach

민발자 2024. 11. 29. 10:30
728x90

map이랑 forEach를 언제 사용하는지 정확하게 이해가 안가서 정리

map()

중간연산 스트림의 각 요소를 주어진 변환(매핑) 함수에 따라 새로운 스트림의 요소로 변환

데이터를 변환하는 데 사용

입력 스트림과 출력 스트림의 타입이 다를 수 있음

 

forEach()

최종연산 스트림의 각 요소를 순회하며 처리하는 동작 수행하고 결과 반환하지 않음

데이터를 변환하지 않고 처리만 수행

보통 데이터 출력, 로그 기록, 누적 작업 등 사이드 이펙트를 처리할 때 사용

 

map()과 forEach()의 차이

특성 map() forEach()
목적 데이터를 변환(매핑) 데이터를 처리(소비)
역할 새로운 스트림을 생성 스트림의 각 요소를 처리
종류 중간 연산 최종 연산
실행 시점 최종 연산이 호출될 때 실행 즉시 실행
결과 변환된 요소를 가진 새로운 스트림 반환 반환값 없음
재사용 가능성 변환된 스트림을 연속적인 연산에 사용가능 스트림이 닫혀 재사용 불가능
728x90