본문 바로가기

RxJava

[RxJava] RxJava 퀴즈 문제

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

 

오늘은 RxJava 강의 들은 것을 퀴즈를 통해 복습하겠습니다.

 

1. range, filter, map을 이용하여 1부터 15까지 숫자 중에 2의 배수만 필터링한 후, 필터링된 숫자에 제곱한 숫자를 출력하세요.

public static void main(String[] args) {
        Observable<Integer> numbers = Observable.range(1, 15);
        numbers.filter(num -> num % 2 == 0)
                .map(num -> num * num)
                .subscribe(System.out::println);
    }
    
// 출력
4
16
36
64
100
144
196

 

2. range, flatMap을 이용하야 2단부터 9단까지 출력하세요.

public static void main(String[] args) {
        Observable<Integer> numbers = Observable.range(2, 8);
        numbers.flatMap(
                data -> Observable.range(1, 9), (sourceData, newData)
                -> sourceData + " * " + newData + " = " + sourceData * newData)
                .subscribe(System.out::println);
    }
// 출력
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81

 

3. interval, skipUtil, timer를 이용하여 1초에 한 번씩 발행된 데이터 중에서 3초 후에 발행된 데이터만 10까지 출력하세요.

public static void main(String[] args) {
        Observable.interval(0L, 1000L, TimeUnit.MILLISECONDS)
                .skipUntil(Observable.timer(3000L, TimeUnit.MILLISECONDS))
                .subscribe(System.out::println);

        try {
            Thread.sleep(10000);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
// 출력
4
5
6
7
8
9
10

 

4. range, skipLast를 이용하여 1부터 15까지의 숫자 중에서 마지막에 발행된 숫자 3개를 제외한 나머지 숫자를 출력하세요.

public static void main(String[] args) {
        Observable<Integer> numbers = Observable.range(1, 15);
        numbers.skipLast(3)
                .subscribe(System.out::println);
    }
// 출력
1
2
3
4
5
6
7
8
9
10
11
12

'RxJava' 카테고리의 다른 글

[RxJava] 에러 처리 연산자  (0) 2025.02.19
[RxJava] 데이터 결합 연산자  (0) 2025.02.11
[RxJava] 데이터 변환 연산자  (0) 2025.02.06
[RxJava] 데이터 필터링 연산자  (0) 2025.02.01
[RxJava] 생성 연산자  (0) 2025.01.30