1.스트림
: 데이터가 물처럼 흘러가는 것을 뜻함.
: 중요하고 어렵다.
: 자바에서 대용량 데이터를 핸들링하는 핵심 API.
: 람다식으로 처리할 수 있도록 해주는 반복자(iterator).
-내부 반복자
: 반복자가 stream에 감춰져 있다.
: 병렬처리가 쉽다.
: 람다식으로 요소 처리 코드 제공
대부분의 요소처리 메소드는 함수적 인터페이스 매개 타입
`
![](data:image/png;base64,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)
모든 처리가 컬렉션 안으로 들어간다.
반면, 외부 반복자는 개발자 코드에서 처리 해야한다.
ex)내부 반복자와 외부 반복자
ex)람다식으로 표현한 스트림
리스트 타입으로 Student 클래스를 만든다.
-스트림 중간처리
**중간처리란?
Data(JCK)
-가공되지 않은 데이터
|
중간처리(map,sort,fittering...)
-데이터 가공
매핑: 객체를 값으로 형변환시키는 것.
|
최종처리(aggregation:집계)
-Reduction 수행(평균구하기 등... 평균을 구하면 값 하나만 저장하면 된다.)
리덕션: 데이터의 차원을 줄이는 행위(변수, 관측치를 차원이라 한다.)
중간처리가 들어간 스트림의 예제를 보자.
ex)
Student는 위에서 사용한 클래스를 다시 쓴다.
스트림은 병렬처리가 가능하기 때문에 수 많은 데이터를 집계하는데 사용한다.
따라서 데이터분석에서 아주 중요한 역할을 한다.
예제를 통해 순차적 처리와 병렬처리의 차이점을 알아보자.
ex)순차적 vs 병렬
<Console결과>
위의 결과는 순차적 처리이다.
순차적처리는 thread가 하나로 실행되기 때문에 입력한 순서데로 값이 출력이 된다.
밑은 병렬처리 결과이다.
병렬은 여러 thread가 실행되기 때문에 어떤값이 먼저 실행될지 모르며,
실행할때마다 출력 순서가 바뀐다.
2.스트림의 종류
: 자바 8부터 새로 추가
: java.util.stream 패키지에 API 존재
-BaseStream
: 모든 스트림에서 사용 가능한 공통 메소드( 직접 사용하지는 않는다.)
요소의 타입에 따라 나뉜다.
-Stream : 객체 요소 처리
java.util.Collection.stream() 순차처리하겠다.
parrallelStream() 병렬처리하겠다.
IntStream.rangeClosed는 마지막 값 포함한다.
ex)스트림을 통해 디렉토리 출력해보기
<Console결과>
모든 디렉토리를 볼 수 있다.
3.파이프라인
: 여러 개의 스트림이 연결되어 있는 구조
: 파이프라인을 거처 데이터 리덕션이 일어남.
리덕션(Reduction): 대량의 데이터를 가공해 축소하는 것
-중간 처리 메소드 종류
필터링: 요소를 걸러내는 역할을 한다.
매핑: 스트림의 요소를 다른 요소로 대체하는 작업을 한다.
정렬: 요소를 정렬해서 최종 처리 순서를 변경할 수 있다.
루핑: 요소 전체를 반복한다.
중간처리 메소드는 최종처리 메소드가 실행될때 한 번에 실행된다.
즉, 최종처리가 실행될 때까지 지연(lazy)가 되며 최종처리가 없으면 실행이 되지 않는다.
-최종 처리 메소드 종류
ex)pipeline으로 남자 회원만 평균나이 구하기
4.스트림 메소드 자세히 살펴보기
**필터링
: 요소를 걸러내는 역할을 한다.
예제를 보면 아주 쉽게 이해할 수 있다.
ex)
람다식을 줄이는 방법 또한 신경써보자.
**매핑
: 스트림의 요소를 다른 요소로 대체하는 작업을 한다.
**정렬
**루핑
: 요소 전체를 반복하는것
-peek()
: 중간 처리 메소드
: 최종처리 메소드가 실행되지 않으면 지연
-forEach()
: 최종 처리 메소드
: 파이프라인 마지막에 루핑하며 요소를 하나씩 처리
: 다른 최종 메소드 호출 불가
ex)최종처리 메소드가 없을때 있을때
**매칭
커스텀 집계
요소 값이 없을 경우 reduce에서는 identity가 디폴트값이다.
댓글