You will be fine

<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


반응형

블로그의 정보

57개월 BackEnd

BFine

활동하기