reduce() 연산을 거의 써본 적이 없어서 정리함.
stream()이 가지고 있는 기본 연산들 말고 커스텀한 연산을 정의해서 stream()의 요소를 소모시키고 싶을 때 쓴다.
람다식으로 구현하거나 람다식 안에 들어갈 내용이 너무 길면 직접 BinaryOperator
예를 들어 배열에 무자열이 들어있을 때 가장 긴 문자열을 찾는 기능을 만들고 싶다면 아래와 같이 할 수 있다.
public void test() {
String texts[] = {"1111", "1231241247124", "2312874817427728472848", "123"};
System.out.println(Arrays.stream(texts).reduce("", (s1, s2) -> {
if (s1.getBytes().length >= s2.getBytes().length ) return s1;
else return s2;
}));
}
'Backend > JAVA' 카테고리의 다른 글
필터와 인터셉터 (0) | 2024.03.07 |
---|---|
디자인 패턴 (2) | 2024.03.07 |
JAVA의 Thread (0) | 2024.03.05 |
데코레이터 패턴 (0) | 2024.03.05 |
자바의 비선형 자료구조 (0) | 2024.03.04 |