Java 스트림의 최종연산
by 볼빵빵오춘기더보기
※ 스트림의 연산
- 중간 연산 : n번
→ limit(), skip(), filter(), distinct(), map(), peek() 등
⇒ 스트림을 반환 - 최종 연산 : 1번
→ forEach(), allMatch(), anyMatch(), notMatch(), reduce(), collect() findFirst(), findAny()
⇒ 스트림 요소를 소모하기 때문에 스트림이 닫혀 1번만 가능. int, boolean, Optional을 반환
스트림의 최종연산 - forEach()
- 스트림의 모든 요소를 지정된 작업을 수행 - forEach(), forEachOrdered()
- 조건 검사 - allMath(), anyMatch(), noneMatch()
- 조건에 일치하는 요소 찾기 - findFirst(), findAny()
스트림의 최종연산 - reduce()
스트림의 요소를 하나씩 줄여가며 누적연산 수행
예제 코드
더보기
import java.util.*;
import java.util.stream.*;
class Ex14_9 {
public static void main(String[] args) {
String[] strArr = {
"Inheritance", "Java", "Lambda", "stream",
"OptionalDouble", "IntStream", "count", "sum"
};
Stream.of(strArr).forEach(System.out::println);
boolean noEmptyStr = Stream.of(strArr).noneMatch(s->s.length()==0);
Optional<String> sWord = Stream.of(strArr)
.filter(s->s.charAt(0)=='s').findFirst();
System.out.println("noEmptyStr="+noEmptyStr);
System.out.println("sWord="+ sWord.get());
// Stream<String>À» IntStreamÀ¸·Î º¯È¯
IntStream intStream1 = Stream.of(strArr).mapToInt(String::length);
IntStream intStream2 = Stream.of(strArr).mapToInt(String::length);
IntStream intStream3 = Stream.of(strArr).mapToInt(String::length);
IntStream intStream4 = Stream.of(strArr).mapToInt(String::length);
int count = intStream1.reduce(0, (a,b) -> a + 1);
int sum = intStream2.reduce(0, (a,b) -> a + b);
OptionalInt max = intStream3.reduce(Integer::max);
OptionalInt min = intStream4.reduce(Integer::min);
System.out.println("count="+count);
System.out.println("sum="+sum);
System.out.println("max="+ max.getAsInt());
System.out.println("min="+ min.getAsInt());
}
}
'👩🏻💻 About 프로그래밍 > Java' 카테고리의 다른 글
Java 스트림의 그룹화와 분할 (0) | 2023.12.11 |
---|---|
Java collect()와 Collectors (0) | 2023.12.11 |
Java 스트림의 중간연산2 (0) | 2023.12.11 |
Java 스트림의 중간연산 (0) | 2023.12.11 |
Java 스트림의 연산 (0) | 2023.12.11 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기