728x90

map이랑 forEach를 언제 사용하는지 정확하게 이해가 안가서 정리
map()
중간연산 스트림의 각 요소를 주어진 변환(매핑) 함수에 따라 새로운 스트림의 요소로 변환
데이터를 변환하는 데 사용
입력 스트림과 출력 스트림의 타입이 다를 수 있음
forEach()
최종연산 스트림의 각 요소를 순회하며 처리하는 동작 수행하고 결과 반환하지 않음
데이터를 변환하지 않고 처리만 수행
보통 데이터 출력, 로그 기록, 누적 작업 등 사이드 이펙트를 처리할 때 사용
map()과 forEach()의 차이
특성 | map() | forEach() |
목적 | 데이터를 변환(매핑) | 데이터를 처리(소비) |
역할 | 새로운 스트림을 생성 | 스트림의 각 요소를 처리 |
종류 | 중간 연산 | 최종 연산 |
실행 시점 | 최종 연산이 호출될 때 실행 | 즉시 실행 |
결과 | 변환된 요소를 가진 새로운 스트림 반환 | 반환값 없음 |
재사용 가능성 | 변환된 스트림을 연속적인 연산에 사용가능 | 스트림이 닫혀 재사용 불가능 |
728x90
'정리 > Java' 카테고리의 다른 글
변수 메모리 영역 (3) | 2024.11.24 |
---|---|
[자바] 아스키코드 (0) | 2023.11.13 |
[JAVA] 문자열 곱하기 repeat메서드 (1) | 2023.10.16 |
자바의 정석 148~157강 ch13 쓰레드 (1) | 2023.10.12 |
자바의 정석 142~147강 ch12 지네릭스, 열거형, 애너테이션(2) (1) | 2023.09.16 |