본문 바로가기
백엔드/Java

스트림 Stream

by 1005ptr 2021. 5. 18.
반응형

스트림이란 컨베이어 벨트

데이터 원본을 변경하지 않는다.

무제한으로 실시간으로 들어오는 데이터를 연결할 수도 있다.

 

중계 Operator는 기본적으로 lazy 하다.

- 터미널 Operator를 만날때까지 실행되지 않는다.

- stream을 만들어뒀다고 그 시점의 데이터 기준 stream이라고 착각하지 말자.

 

스트림 API는 크게 두가지 종류의 메서드로 나뉜다.

- 중계(계속 이어지는) : stream을 return

- 종료 : stream이 아닌 것을 return

 

순서가 상관없는 경우에는 parallelStream()을 사용하면 알아서 병렬적으로 처리가 된다.

내부적으로는 spliterator가 사용되어 동강동강 내서 병렬처리한다.

 

중계 오퍼레이터의 종류

Filter

Map, FlatMap --> 꺼내는거, flatMap은 펼쳐서 꺼내는거

generate, iterate

limit, skip

anyMatch, allMatch

 

메서드 레퍼런스 쓸때 bool 인 경우 NOT(!)을 쓰고 싶을때는 Predicate.Not(~~)을 쓰면 된다.

내가 주로 사용하는 건 필터, 맵, 매치, 그룹 이다.

반응형

'백엔드 > Java' 카테고리의 다른 글

JOOQ  (0) 2023.05.22
StringUtils.hasText 메서드 : C#의 String.IsNullorEmpty 메서드 대응  (0) 2021.03.28
Collectors.groupingBy 널(null) 키 사용하기  (1) 2021.03.08
Optional  (0) 2021.03.07
함수형 인터페이스  (0) 2021.03.07

댓글