[java] 자바 함수형 인터페이스를 사용하여 반복문을 대체하는 방법은 어떻게 되나요?

자바 8부터는 람다 표현식과 함수형 인터페이스를 사용하여 반복문을 대체할 수 있습니다.

함수형 인터페이스는 딱 한 개의 추상 메서드를 가진 인터페이스를 말합니다. 예를 들어, java.util.function 패키지에는 여러 가지 종류의 함수형 인터페이스가 포함되어 있습니다.

반복문을 대체하기 위해 함수형 인터페이스를 사용하는 가장 일반적인 방법은 스트림(Stream)을 활용하는 것입니다. 스트림은 데이터 처리 연산을 지원하며, 컬렉션 요소를 하나씩 처리하는 메서드 체인 형태로 구성됩니다.

다음은 함수형 인터페이스와 스트림을 사용하여 반복문을 대체하는 간단한 예시입니다.

import java.util.Arrays;
import java.util.List;

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

        // 반복문 대신 스트림을 활용하여 요소 출력
        numbers.stream().forEach(number -> System.out.println(number));

        // 조건에 따른 요소 필터링 및 변환
        numbers.stream()
               .filter(number -> number % 2 == 0)
               .map(number -> number * 2)
               .forEach(number -> System.out.println(number));
    }
}

위 예시에서는 먼저 Arrays.asList() 메서드를 사용하여 정수 리스트를 생성합니다. 그리고 stream() 메서드를 호출하여 리스트를 스트림으로 변환합니다.

스트림을 활용하여 요소를 출력하기 위해 forEach() 메서드를 사용하고, 조건에 따른 요소 필터링 및 변환을 위해 filter()와 map() 메서드를 사용합니다.

스트림을 사용하여 반복문을 대체함으로써 코드를 더 간결하고 가독성 있게 작성할 수 있습니다. 또한, 스트림은 병렬 처리를 지원하여 성능을 향상시킬 수도 있습니다.

추가적으로, 자바 8에 추가된 스트림 API에 대한 더 자세한 정보는 여기에서 확인할 수 있습니다.