안드로이드/Rx

리액티브 연산자 - 기초 (map, filter, reduce)

코딩하는후운 2021. 3. 28. 19:01
반응형

map() 함수

-입력값을 어떤 함수에 넣어서 원하는 값으로 변환하는 함수.

  • String을 String으로 변환할 수도 있고, String을 Integer나 다른 객체로도 변환할 수 있음

 

map() 핵심

-내가 원하는 값을 ‘어떤 함수’ 에 넣는 것

-어떤 함수 : Function 인터페이스 객체 / 람다 표현식

-원하는 함수를 정의할 수 있느냐가 관건

 

flatMap() 함수

-map()을 좀 더 발전시킨 함수

-결과가 Observable로 나옴

-flatMap() => 일대다 or 일대일 Observable 함수

  • map() => 일대일 함수
  • RxJava에서 여러 개의 데이터를 발행하는 방법은 Observable 밖에 없음 (배압(back pressure)을 고려하면 Observable 대신에 Flowable)

filter() 함수

-Observable에서 원하는 데이터만 걸러내는 역할

  • 필요없는 데이터는 제거하고 오직 관심 있는 데이터만 filter() 함수를 통과하게 됨.

Predicate를 인자로 넣음 (Predicate - 진위 판별이라는 뜻, boolean 값을 리턴하는 특수한 함수형 인터페이스)

    • Map()은 Function 객체를 인자로 넣음
    • 람다를 사용하면 Function인지 Predicate인지 신경쓰지 않고 동일하게 코딩 할 수 있는 장점
    • Observable<Integer> source = Observable.fromArray(data).filter(number -> number % 2 ==0 );
  • filter()와 비슷한 함수들
    • first(default) : Observable의 첫 번째 값을 필터. 값이 없이 완료되면 기본값 리턴.
    • last(default) : 마지막 값
    • take(N) : 최초 N 개 값만 가져옴.
    • takeLast(N) : 마지막 N 개 값만 필터함.
    • skip(N) : 최초 N 값을 건너뜀.
    • skipLast(N) : 마지막 N개 값을 건너뜀.

 

출처: 

taeiim.tistory.com/entry/RxJava2-3-%EB%A6%AC%EC%95%A1%ED%8B%B0%EB%B8%8C-%EC%97%B0%EC%82%B0%EC%9E%90-%EA%B8%B0%EC%B4%88-map-filter-reduce?category=759183

 

 

반응형

'안드로이드 > Rx' 카테고리의 다른 글

[Android] RxJava2 함수에 대해 알아보자  (0) 2022.10.24
RxJava에 대해 알아보자  (0) 2022.10.24