본문 바로가기

RxJava

[RxJava] 데이터 집계 연산자

안녕하세요. 메로나입니다.

 

오늘은 데이터 집계 연산자에 대해 공부하겠습니다.

 

count
  • Observable이 통지한 데이터의 총개수를 통지합니다.

count - 마블다이어그램

public static void main(String[] args) {
        Observable.just(1, 3, 5, 7, 9)
                .count()
                .subscribe(System.out::println);
    }
// 출력
5

 

reduce
  • Observable이 통지한 데이터를 이용해서 어떤 결과를 일정한 방식으로 합성한 후, 최종 결과를 반환합니다.
  • Observable이 통지한 데이터가 숫자일 경우 파라미터로 지정한 함수형 인터페이스에 정의된 계산 방식으로 값을 집계할 수 있습니다.

reduce - 마블다이어그램

 public static void main(String[] args) {
        // Create an observable
        Observable.just(1, 3, 5, 7, 9)
                .reduce((total, next) -> total + next) // total 변수에 계속 값이 누적됨
                .subscribe(System.out::println);
    }
// 출력
25

 

문제) range, reduce 함수를 이용하여 10부터 1까지 역순으로 뺄셈을 한 최종 결과 값을 구하세요.
public static void main(String[] args) {
        Observable.range(1, 10)
                .map(num -> 11 - num) // map으로 숫자 뒤에서부터 출력 10부터~
                .reduce((total, next) -> total - next) // total에 저장
                .subscribe(System.out::println);
    }
// 출력
-35

 

오늘은 데이터 집계를 위해 함수를 공부하였습니다.

통계를 내야할 때가 많은데 해당 함수들을 사용해서 집계를 해도 될 것 같습니다.

20000~

'RxJava' 카테고리의 다른 글

[RxJava] 조건과 불린 연산자  (0) 2025.02.22
[RxJava] 유틸리티 연산자  (0) 2025.02.21
[RxJava] 에러 처리 연산자  (0) 2025.02.19
[RxJava] 데이터 결합 연산자  (0) 2025.02.11
[RxJava] RxJava 퀴즈 문제  (0) 2025.02.09