함수형 인터페이스, 람다, 스트림 알아보자 (feat. Java)

narisarit·2025년 6월 9일
0
post-thumbnail

함수형 인터페이스

하나의 추상 메서드만을 갖는 인터페이스를 의미한다.
Java 8부터는 default 메서드와 static 메서드를 여러 개 포함할 수 있지만, 추상 메서드는 반드시 하나만 존재해야 함수형 인터페이스로 간주된다.

대표적인 예로 Runnable, Comparator, Consumer, Supplier 등이 있다. (함수형 인터페이스를 쉽게 사용할 수 있도록 Java에서 미리 만들어둔 인터페이스들, 우리는 람다식을 사용하여 원하는 대로 구현 해 사용하면 된다.)

람다식

함수형 인터페이스의 구현체를 간결하게 표현하기 위한 문법이다.
익명 클래스를 사용하는 것보다 간결하며, 매개변수 -> 표현식 형태로 작성된다.
람다식은 내부적으로 함수형 인터페이스의 추상 메서드를 구현한 것으로 간주된다.
또한, 메서드 참조 (ClassName::methodName)를 통해 람다식을 더욱 간결하게 만들 수도 있다.

스트림 (Stream)

Java 8에서 도입된 스트림은 컬렉션, 배열 등의 데이터 소스를 동일한 방식으로 가공할 수 있도록 도와주는 API이다.
기본 구성은 다음과 같다:

생성: 데이터 소스로부터 스트림 생성 (stream(), of(), Arrays.stream() 등)

중간 연산: 필터링, 매핑, 정렬 등 (filter, map, sorted 등) – lazy하게 실행

최종 연산: 결과 수집 또는 출력 (collect, forEach, count 등) – 이 때 스트림이 실제로 동작

한 번 사용된 스트림은 재사용할 수 없다 (1회용).
중간 연산은 여러 개를 연결해서 체이닝할 수 있으며, 지연 평가(lazy evaluation)를 통해 최적화된 실행이 가능하다.

profile
식물축구코딩롤

0개의 댓글