[java] 함수형 인터페이스를 사용하여 스트림 연산을 수행하는 방법은 어떻게 되나요?

Java 8부터는 람다식과 함수형 인터페이스를 사용하여 스트림 연산을 보다 간편하게 수행할 수 있습니다. 함수형 인터페이스는 단 하나의 추상 메서드를 가진 인터페이스를 말합니다.

예를 들어, List를 가지고 있는 스트림에서 짝수만 필터링하고, 각 요소를 제곱하여 출력하는 코드를 작성해보겠습니다.

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        List<Integer> evenSquaredNumbers = numbers.stream()
                .filter(num -> num % 2 == 0) // 짝수 필터링
                .map(num -> num * num) // 제곱 연산
                .collect(Collectors.toList()); // 결과를 리스트로 수집

        System.out.println(evenSquaredNumbers); // [4, 16, 36, 64, 100]
    }
}

위 코드에서 filtermap 메서드는 함수형 인터페이스를 사용하여 각각 조건을 필터링하고, 연산을 수행합니다. 따라서, 람다식을 이용하여 각 메서드의 동작을 정의할 수 있습니다.

스트림 API에서는 다양한 함수형 인터페이스를 제공하고 있으며, 각각의 인터페이스는 다른 종류의 연산을 수행할 수 있습니다. 필요한 기능에 따라 적절한 함수형 인터페이스를 선택하여 사용할 수 있습니다.

함수형 인터페이스의 종류와 메서드는 Java 공식 문서를 참고하시면 더 자세한 정보를 얻을 수 있습니다.