10. Lambda & Stream
Lambda와 Stream은 함수형 프로그래밍 스타일을 지원하여 코드를 간결하게 작성하고, 컬렉션 데이터를 처리하는 데 편리한 기능입니다. Lambda는 익명 함수를 표현하고 사용할 수 있게 해주며, Stream은 데이터 요소의 연속적인 처리를 지원하여 컬렉션 데이터를 효과적으로 다룰 수 있도록 도와줍니다.
1. Lambda (람다)
람다는 익명 함수(anonymous function)를 생성하기 위한 기능입니다. 일반적으로 메서드를 간결하게 표현하고, 함수를 인수로 전달하거나 변수로 저장하는 데 사용됩니다.
람다 표현식은
->
기호를 사용하여 정의되며, 매개변수와 메서드 바디로 구성됩니다.람다는 함수형 인터페이스(Functional Interface)를 대상으로 사용되며, 해당 인터페이스의 추상 메서드를 구현하는 익명 함수로 취급됩니다.
예시:
2. Stream (스트림)
스트림은 데이터 요소의 연속적인 흐름을 나타내는 개념으로, 컬렉션 데이터를 처리하고 변환하는 데 사용됩니다.
스트림은 컬렉션을 대상으로 데이터 처리 작업을 수행하는데 사용되며, 데이터를 필터링, 매핑, 정렬, 그룹화 등 다양한 작업을 연속적으로 수행할 수 있습니다.
스트림은 데이터 소스에 대한 변경을 가하지 않고 원본 데이터를 유지하며, 함수형 프로그래밍 스타일로 작성됩니다.
예시:
위의 예시에서, numbers 리스트를 스트림으로 변환하여 짝수만 필터링하고, 각 요소를 2배로 매핑한 후에 합계를 구합니다. 이러한 작업은 중간 연산(intermediate operation)과 최종 연산(terminal operation)으로 구성되며, 최종 연산인 sum()
을 호출하여 결과를 얻을 수 있습니다.
Last updated