Kotlin 에서 .map{} 과 .forEach{} 항상 비슷한 느낌이 들어서 이번 기회에 정리.
.map 의 경우
- 반환 값이 있음: 새로운 컬렉션을 생성해서 반환합니다.
- 변환 목적: 각 요소를 다른 형태로 변환할 때 사용합니다.
- 불변성: 원본 컬렉션을 변경하지 않고 새로운 컬렉션을 생성합니다.
- 함수형 프로그래밍: 함수형 프로그래밍 스타일에 적합합니다.
.ForEach 의 경우
- 반환 값이 없음: Unit을 반환하며 새로운 컬렉션을 생성하지 않습니다.
- 실행 목적: 각 요소에 대해 특정 작업을 수행할 때 사용합니다.
- 부수 효과: 주로 부수 효과(side effect)를 위해 사용합니다 (예: 로깅, UI 업데이트).
- 절차적 프로그래밍: 명령형/절차적 프로그래밍 스타일에 가깝습니다.
결론적으로
- .map은 중간 컬렉션을 생성하므로 메모리를 더 사용합니다.
- .forEach는 중간 컬렉션을 생성하지 않으므로 메모리 사용이 적습니다.
리턴값이 필요하지 않으면 forEach 사용하는 것이 더 좋은 선택인거 같다.
'KOTLIN > SOURCECODE' 카테고리의 다른 글
jakarta.transaction.Transactional vs org.springframework.transaction.annotation.Transactional (0) | 2025.02.26 |
---|---|
Page<T> 와 Slice<T> (0) | 2025.02.05 |