[java] 람다 표현식을 사용하여 스트림을 어떻게 상태 값을 유지할 수 있나요?
import java.util.stream.Stream;

public class StatefulStreamExample {

    public static void main(String[] args) {
        String[] words = {"apple", "banana", "cherry", "date"};

        StateHolder stateHolder = new StateHolder();

        long count = Stream.of(words)
                .map(word -> stateHolder.addAndReturn(word))
                .count();

        System.out.println("Total characters: " + stateHolder.getTotalChars());
    }

    static class StateHolder {
        private int totalChars = 0;

        public String addAndReturn(String word) {
            totalChars += word.length();
            return word;
        }

        public int getTotalChars() {
            return totalChars;
        }
    }
}

위의 코드는 StateHolder 클래스를 사용하여 스트림의 각 요소에 대해 글자 수의 합계를 계산하는 예제입니다. StateHolder 클래스는 addAndReturn 메서드를 통해 상태를 변경하고 상태 값을 유지합니다.

이 예제는 람다 표현식을 사용하여 스트림을 효과적으로 처리하면서 상태 값을 유지하는 방법을 보여줍니다.

[참고 자료]