forked from whiteship/java8
-
Notifications
You must be signed in to change notification settings - Fork 0
Stream 소개
Jeonghyun Kang edited this page May 17, 2022
·
3 revisions
- 컬렉션에 저장되어 있는 엘리먼트들을 하나씩 순회하면서 처리할 수 있는 코드패턴
- Stream은 데이터를 담고 있는 저장소가 아니다.
- Stream은 original 데이터 소스를 변경하지 않는다.
- 병렬처리가 가능하다 (
parallelStream
)
- 다수의 중개 오퍼레이션(없어도 가능)과 한 개의 종료 오퍼레이션으로 구성한다.
- 종료 오퍼레이션을 실행하기 전까지 스트림의 데이터 소스는 처리되지 않는다.
- 중개 오퍼레이션은 근본적으로 lazy하다!
Stream을 리턴한다.
-
filter
: 조건이 참인 엘리먼트만 스트림에 담는다. -
map
: 들어온 엘리먼트의 타입을 바꾸어 스트림에 담는다. limit
skip
sorted
Stream을 리턴하지 않는다.
collect
-
allMatch
: 전부 true면 true 리턴 forEach
-
min
/max
Stream을 일반적인 List, Set 등으로 변경시키기 위한 클래스
-
Stream.collect()
메소드의 파라미터는 Collectors 클래스의 구현체가 들어가야한다. - Collectors 클래스의 구현체는 Collectors 클래스의 static 메소드를 통해 얻을 수 있다.
-
Collectors.toList()
: 스트림을ArrayList
로 변환시키는 Collectors 구현체를 반환함. -
Collectors.toCollection(LinkedList::new)
: 스트림을LinkedList
로 변환시키는 Collectors 구현체를 반환함.
-