<Lambda> 4. JAVA8 in Action - Chapter 4
by BFine반응형
JAVA8 in Action - part2
Chapter 4 - Steam 소개
4.1 스트림이란
- 자바 API에 새로 추가된 기능, 선언형 으로 컬렉션 데이터를 처리 할 수 있다.
- 특징 : 선언형, 조립, 병렬화
4.2 스트림시작하기
-
스트림이란 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소
-
연속된 요소 : 컬렉션의 주제는 데이터 이고 스트림의 주제는 계산 이다.
컬렉션에서는 ArrayList, LinkedList 둘 중 어떤 것을 쓸건지에 대한 시간&공간의 복잡성과 관련된 요소 저장 및 접근 연산이 주이다. 스트림은 filter, map처럼 계산식이 있다.
소스 : 리스트의 요소와 같은 순서를 유지
파이프라이닝 : 스트림 연산끼리 연결해 커다란 파이프라인을 만들 수 있게 스트림 자신을 반환
내부반복 : 스트림 내부에서 반복이 이루어 진다.
-
Stream의 데이터 처리연산
filter
: 람다를 인수로 받아 특정요소 제거map
: 람다를 이용해서 한 요소를 다른 요소로 변환하거나 정보를 추출limit
: 스트림 크기를 축소한다.collet
: 스트림을 다른 형식으로 변환
4.3 스트림과 컬렉션
둘다 순차적으로 값을 저장하는 자료구조 인테페이스를 제공
-
가장 큰 차이는 데이터를 언제 계산하는지에 대한 차이점이 있다.
-
컬렉션의 모든 요소는 추가하기 전에 계산되어야 한다.(DVD)
추가 삭제시 모든 요소를 메모리에 저장해야한다.
스트림은 요청할때만 요소를 계산한다. (스트리밍)
-
스트림은 한 번만 탐색할 수 있다. (=Iterator)
컬렉션은 외부반복 (반복자가 데이터를 가져와서 처리)이고 스트림은 내부반복 이다.
외부반복은 병렬성을 스스로 관리 해야한다.
4.4 스트림 연산
- 서로 파이프라인을 형성할 수 있는 스트림 연산을 중간연산, 닫는 연산을 최종연산이라 한다.
- 중간연산
- 다른 스트림을 반환 할 수 있게 때문에 원하는 질의로 스트림을 만들 수 있다.
- 하나씩 순차적으로 데이터가 연산들 모두 통하고 다음 데이터를 처리하는 방식이다.
- 최종연산
- 중간 파이프라인에서 넘어온 것으로 부터 결과를 도출한다.
출처
- Java8 in Action
반응형
'개발서적 > 자바8 인 액션' 카테고리의 다른 글
<Lambda> 6. JAVA8 in Action - Chapter 6 (0) | 2019.04.02 |
---|---|
<Lambda> 5. JAVA8 in Action - Chapter 5 (0) | 2019.04.01 |
<Lambda> 3. JAVA8 in Action - Chapter 3 (0) | 2019.03.27 |
<Lambda> 2. JAVA8 in Action - Chapter 2 (0) | 2019.03.26 |
<Lambda> 1. JAVA8 in Action - Chapter 1 (0) | 2019.03.25 |
블로그의 정보
57개월 BackEnd
BFine