안녕하세요. 메로나입니다.
오늘은 조건관 불린 연산자에 대해 공부하겠습니다.
all
통지된 데이터가 조건에 맞지 않는다면 이후 데이터는 구독 해지합니다.
통지된 모든 데이터를 설정한 조건에 맞는지를 판단합니다.

public static void main(String[] args) {
Observable.just(11, 1, 2, 3, 4, 5)
.doOnNext(num -> System.out.println("Number: " + num))
.all(num -> num > 10)
.subscribe(System.out::println);
}
// 출력
Number: 11
Number: 1
false // 이후 구독이 해지됩니다.
amb
여러 개의 Observable 중에서 최초 통지된 시점이 가장 빠른 Observable만 통지되고 나머지 Observable은 무시됩니다.

public static void main(String[] args) {
Observable<Integer> observable1 = Observable.just(1, 2, 3, 4, 5)
.delay(1000L, TimeUnit.MILLISECONDS); // 1초 후에 발행
Observable<Integer> observable2 = Observable.just(10, 20, 30, 40, 50)
.delay(500L, TimeUnit.MILLISECONDS); // 0.5초 후에 발행
Observable.ambArray(observable1, observable2) // 먼저 데이터를 발행하는 Observable을 선택
.subscribe(System.out::println);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 출력
10
20
30
40
50
contains
파라미터의 데이터가 Observable에 포함되어 있는지를 판단합니다.
결괏값을 true / false로 통지합니다.

public static void main(String[] args) {
Observable.just(1, 3, 5, 7, 9)
.contains(5)
.subscribe(System.out::println);
}
// 출력
true
defaultIfEmpty
통지할 데이터가 없을 경우 default 값을 통지합니다.
public static void main(String[] args) {
Observable.just(1, 3, 5, 7, 9)
.filter(num -> num > 10)
.defaultIfEmpty(0)
.subscribe(System.out::println);
}
// 출력
0
sequenceEqual
두 Observable이 동일한 순서로 동일한 개수의 같은 데이터를 통지하는지 판단 후 true / false를 통지합니다.

public static void main(String[] args) {
Observable<Integer> observable1 = Observable.just(1, 2, 3, 4, 5);
Observable<Integer> observable2 = Observable.just(1, 2, 4, 5, 2);
Observable.sequenceEqual(observable1, observable2)
.subscribe(System.out::println);
}
// 출력
false
오늘은 많이 사용할 것 같은 조건문에 따른 불린 연산자를 공부하였습니다.
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 |
