버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • 코틀린
  • 안드로이드
  • foreach
  • 이것이자바다
  • 스택
  • 게시판
  • 함수
  • 버블소트
  • 톰캣
  • opacity
  • 큐
  • 객체지향
  • 배열
  • dml
  • 포트폴리오
  • sqld
  • SQL
  • 스프링
  • 기본쿼리
  • 부트스트랩
  • 이클립스
  • 변수
  • callback
  • final필드
  • 홈페이지
  • 오라클
  • 문제풀이
  • 만들기
  • 데이터베이스
  • 세션

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

스트림 / 스트림 파이프라인 / 필터링
🏃‍♀️ Do it !/TIL

스트림 / 스트림 파이프라인 / 필터링

2022. 10. 11. 09:21
728x90

2022 / 10 / 11 화

  • 스트림
  • 스트림 파이프라인
  • 필터링

✔️스트림

스트림이란?

자바 8 부터 추가된 컬렉션(배열 포함)의 저장 요소를 하나씩 참조하여

람다식으로 처리할 수 있도록 해주는 반복자 이다. 


스트림 특징

  1. 람다식으로 요소 처리 코드를 제공
  2. 내부 반복자를 사용하므로 병렬 처리가 쉽다
  3. 스트림은 중간 처리와 최종 처리를 할 수 있다

스트림 종류

                         BaseStream

                                 ↑

Stream / IntStream / LongStream / DoubleStream


스트림 인터페이스의 구현 객체

- 주로 컬렉션과 배열에서 얻는다. 

리턴 타입 메소드 ( 매개 변수)  소스
Stream<T> java.uril.Collection.Stream()
java.utill.Collection.parallelStream()
컬렉션
Stream<T>
IntStream
LongStream
DoubleStream
Arrat.stream(T[ ] ),
Arrat.stream(int[ ] ),
Arrat.stream(long[ ] ),
Arrat.stream(double[ ] ),
Stream.of(T [ ]),
IntStream.of(int[ ] ),
LongStream.of(long[ ] ),
DoubleStream.of(double[ ] )
배열 
IntStream IntStream.range(int., int)
IntStream.rangeClosed(int, int)
int 범위
LongStream LongStream.range(long, long)
LongStream.rangeClosed(long, long)
long 범위
Stream<Path> Files.find(Path, int, BiPredicate, FileVisitOption)
Files.list(Path)
디렉토리
Stream<String> Files.lines(Path, Charset)
BufferedReader.lines()
파일
DoubleStream
IntStream
LongStream
Random.foubles(...)
Random.ints()
Random.longs()
랜덤 수

 


✔️ 스트림 파이프라인

리덕션 이란? (Reduction)

대량의 데이터를 가공하여 축소하는것

데이터의 합계, 평균값, 카운팅, 최대값, 최소값

 

만약 컬렉션의 요소를 리덕션의 결과물로 바로 집계할 수 없는 경우엔?

--> 집계하기 좋도록 필터링, 매핑, 정렬, 그룹핑 등의 중간 처리가 필요하다

--> 스트림 파이프 라인의 필요성 !!!


파이프라인

여러개의 스트림이 연결되어 있는 구조

✨ 파이프라인에서 최종 처리를 제외하고는 모두 중간 처리 스트림을 한다. 

중간 처리와 최종 처리

Stream 인터페이스는 필터링, 매핑, 정렬등 많은 중간 처리의 메소드를 갖는다.

메소드들은 중간 처리된 스트림 리턴

스트림에서 다시 중간 처리 메소드를 호출하여 파이프라인을 형성한다 ~


✔️필터링

필터링이란?

중간 처리 기능으로 요소를 걸러내는 역할을 한다. 

필터링 메소드인 disrinct( ) 와  filrer( ) 메소드

리턴 타입 메소드 (매개 변수) 의미
Stream
IntStream
LongStream
DoubleStream
distinct( ) 중복 제거
filter(Predicate) 조건 필터링
filter(IntPredicate)
filter(LongPredicate)
filter(DoublePredicate)

'🏃‍♀️ Do it ! > TIL' 카테고리의 다른 글

SQL / 테이블 스페이스 생성하기  (0) 2022.10.13
데이터베이스 / 샘플스키마 설치하기  (0) 2022.10.12
네트워크 기초  (0) 2022.10.07
입력 스트림, 출력 스트림  (0) 2022.10.05
람다식 / 클래스 멤버와 로컬 변수 사용 / 표준 API 함수적 인터페이스  (0) 2022.09.30
    '🏃‍♀️ Do it !/TIL' 카테고리의 다른 글
    • SQL / 테이블 스페이스 생성하기
    • 데이터베이스 / 샘플스키마 설치하기
    • 네트워크 기초
    • 입력 스트림, 출력 스트림
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바