본문 바로가기

Programming/Java

DAY 101. JAVA - 스트림(Stream) 최종 처리 메소드 종류

 

 

◆ 매칭(Match)


- 최종 처리 메소드이다. 결과를 true, false로 리턴한다.

- 최종 처리 단계에서 요소들이 특정 조건에 만족하는지 조사하는 기능이다.

 

◇ allMatch()

: 모든 요소들이 매개 값으로 주어진 Predicate의 조건을 만족하는지 조사한다.

 

 anyMatch()

: 최소한 한 개의 요소가 매개 값으로 주어진 Predicate의 조건을 만족하는지 조사한다. 

(하나라도 만족하면 true, false려면 모두 만족하지 않아야 한다.)

 

noneMatch()

: 모든 요소들이 매개 값으로 주어진 Predicate의 조건을 만족하지 않는지를 조사한다.

 

 


 

◆ Aggregate

 

기본 집계

최종 처리 기능으로 요소들을 처리해서 카운팅, 합계, 평균값, 최대값, 최소값 등과 같이 하나의 값으로 산출하는 것을 말한다.

 

 

count()

: 요소의 개수를 리턴한다.

 

sum()

: 요소의 합계를 리턴한다.

 

average()

: 요소의 평균을 리턴한다.

 

max()

: 최대 요소를 리턴한다.

 

min()

: 최소 요소를 리턴한다.

 

findFirst()

: 첫 번째 요소를 리턴한다. (cf. findany() 무조건 첫 번째 요소가 아닐 수 있음)

 

 

커스텀 집계

스트림에서 기본 집계 메소드를 제공하지만 다양한 집게 결과물을 만들 수 있도록 reduce() 메소드를 제공한다.

 

매개 타입으로 XXXOperator

 리턴 타입으로 OptionalXXX

 

 

Optional 클래스

- 스트림의 최종 결과 값을 저장하는 객체이다.

- 단순히 값만 저장하는 것이 아니라, 값의 존재 여부를 확인하고 값이 존재하지 않을 경우 디폴트 값을 설정할 수 있는 객체이다.

 

 

get()

: 저장되어 있는 값을 얻기 위해 사용한다.

 

 isPresent()

: 값이 저장되어 있는지 검사한다.

 

 orElse()

: get()과 동일하게 저장되어 있는 값을 얻어오는 메소드로 값이 저장되어 있지 않을 경우 디폴트 값을 지정한다.

 

 ifPresent(Consumer)()

: 값이 저장되어 있을 경우 Consumer에서 값을 처리한다.

 

 


 

◆ 수집(Collect)

- 스트림 요소들은 필터링 또는 매핑한 후 요소들을 수집하는 최종 처리 메소드인 collect()를 제공한다.

- collect() 메소드를 사용하면 필요한 요소만 새로운 컬렉션으로 담아서 리턴받을 수 있다.