다양한 데이터 소스(컬렉션, 배열)를 표준화된 방법으로 다루기 위한 것

# 순서
1. 스트림으로 만들기
2. 중간연산 (여러번)
3. 최종연산 (1번)
ex) list.stream() 하면 Stream<T>로 바뀜
# 특징
1. 스트림은 데이터소스로부터 데이터를 읽기많 할 뿐 변경하지 않는다.
- 원본 변경 X
2. 스트림은 Iterator처럼 일회용이다. ( 필요하면 다시 생성 )
- 스트림을 최종연산하고나면 스트림의 요소를 소모함. (하나씩 꺼내서 씀)
- 최종연산하면 스트림이 닫힘.( 다시 열어야함. )
3. 최종연산 전까지 중간연산이 수행되지 않는다. ( 지연된 연산 )
- ex) 무한 스트림을 .distinct() 할 수 있다.
4. 스트림은 작업을 내부 반복으로 처리한다.

5. 스트림의 작을 병렬로 처리 ( stream().parallel() )
몰라도됨. 6. 기본형 스트림 ( Stream<Interger> 대신 IntStream 사용 ) - 오토박싱&언박싱의 비효율이 제거됨
---------------------------------------------------------------------------------------------------------------------------------------
# 스트림 만들기
1.
- Collection(List, Set) 인터페이스의 stream() 메서드로 스트림 생성


출처 : https://wikidocs.net/book/31
'Basic Grammar > Java' 카테고리의 다른 글
함수형 인터페이스 (0) | 2022.07.16 |
---|---|
람다식 (0) | 2022.07.16 |
JAVA의 객체지향 - static (0) | 2022.06.19 |
점프 투 자바 05장 (0) | 2022.06.18 |
점프 투 자바 03장 (0) | 2022.06.18 |