최종연산 forEach()
스트림의 모든 요소에 지정된 작업을 수행 , forEach(), forEachOrdered()
void forEach(Consumer <? super T> action) //병렬스트림인 경우 순서가 보장되지 않음
void forEachOrdehead(Consumer <? super T> action) //병렬스트림인 경우 순서가 보장됨
sequential : 순차스트림
parallel: 병렬스트림
IntStream.range(1,10).sequential().forEach(system::println); //123456789
IntStream.range(1,10).sequential().forEachOrderhead(system::println); //123456789
IntStream.range(1,10).parallel().forEach(system::println); //7634~
IntStream.range(1,10).parallel().forEachOrderhead(system::println); //123456789
순서보정안되면 더 빠르다.
조건검사 allMatch() , anyMatch(), noneMatch()
boolean allMatch(predicate <? super T> predicate) //모든 요소가 조건을 만족시키면 true
boolean anyMatch(predicate <? super T> predicate) //하나의 요소라도 조건을 만족시키면 true
boolean noneMatch(predicate <? super T> predicate) //모든 요소가 조건을 만족시키지 않으면 true
ex.
boolean hasFaileStu = str.stream.anyMatch(s -> s.getTotalScore(1<=100));
조건에 일치하는 요소 찾기 findFirst() , findAny()
Optional<T> findFirst() // 첫번째 요소를 반환 , 순차스트림 사용
Optional<T> findAny() //아무거나 하나를 반환 ,병렬 스트림 사용
ex. filter를 사용, 결과가 null일수 있음
Optional<student> result = strStream.filter(s -> s.getTotalScore() <= 100).findFirst();
Optional<student> result = paralleStream.filter(s -> s.getTotalScore() <= 100).findAny();
'JAVA' 카테고리의 다른 글
스트림10 최종연산 collect 와 colltors (0) | 2023.03.16 |
---|---|
스트림9 최종연산 reduce() (0) | 2023.03.16 |
Optional<T> (0) | 2023.03.16 |
스트림7 flatMap() 스트림의 스트림을 스트림으로 변환 (0) | 2023.03.16 |
스트림6 peek() 스트림소모 없이 요소 조회 (0) | 2023.03.16 |