[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]
}
}
위 코드에서 filter
와 map
메서드는 함수형 인터페이스를 사용하여 각각 조건을 필터링하고, 연산을 수행합니다. 따라서, 람다식을 이용하여 각 메서드의 동작을 정의할 수 있습니다.
스트림 API에서는 다양한 함수형 인터페이스를 제공하고 있으며, 각각의 인터페이스는 다른 종류의 연산을 수행할 수 있습니다. 필요한 기능에 따라 적절한 함수형 인터페이스를 선택하여 사용할 수 있습니다.
함수형 인터페이스의 종류와 메서드는 Java 공식 문서를 참고하시면 더 자세한 정보를 얻을 수 있습니다.