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

자바 8부터 함수형 인터페이스를 지원하기 시작했습니다. 함수형 인터페이스는 단 하나의 추상 메서드만을 가지는 인터페이스를 말합니다. 예를 들어, 자바에서 제공하는 Function, Consumer, Predicate 등이 함수형 인터페이스의 예입니다.

이제 실제로 함수형 인터페이스를 사용하여 반복문을 간소화하는 예시를 살펴보겠습니다. 아래는 리스트에 있는 숫자들을 출력하는 반복문의 예시입니다.

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

// 기존의 반복문
for (Integer number : numbers) {
    System.out.println(number);
}

// 함수형 인터페이스를 이용한 반복문
numbers.forEach(System.out::println);

위의 예시에서, forEach 메서드는 리스트의 각 요소에 대해서 주어진 동작을 수행합니다. 이때 forEach 메서드는 Consumer 함수형 인터페이스를 파라미터로 받습니다. 출력 기능은 자바에서 제공하는 System.out.println 메서드를 이용하며, 이 메서드는 Consumer 인터페이스의 추상 메서드인 accept 메서드와 일치합니다. 따라서 System.out::println은 Consumer 인터페이스의 구현체로 사용될 수 있습니다.

이와 같이 함수형 인터페이스를 사용하면 반복문을 더 간결하고 가독성있게 작성할 수 있습니다. 함수형 인터페이스를 사용하면서 람다식을 함께 사용하면 코드를 더욱 짧게 작성할 수 있습니다. 자바 8 이후로는 함수형 프로그래밍 스타일을 도입하여 코드를 더욱 간결하게 작성할 수 있게 되었습니다.

참고 자료: