본문 바로가기

Basic Grammar/Java

Stream

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

 

 

# 순서

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
Recent Posts
Popular Posts
Recent Comments