[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
메서드를 통해 상태를 변경하고 상태 값을 유지합니다.
이 예제는 람다 표현식을 사용하여 스트림을 효과적으로 처리하면서 상태 값을 유지하는 방법을 보여줍니다.
[참고 자료]
- https://www.baeldung.com/java-stateful-streams