[RxJava]RxJava制御演算子


📝RxJavaの学習手順 1.不可観測類を明確に理解する(特に熱不可観測と冷不可観測の概念を理解しなければならない) 2.変換、制御、結合演算子などのカテゴリの主な関数を学習する 3.スケジューラの意味、subscribeOn()とobserverOn()関数の違い 4.その他のデバッグ、フロー制御関数

1.制御演算子


RxJavaでは、制御演算子は入力データから必要なデータを選択する関数です。 filter()、first()、take()など。

🧩 filter()


filterはObserverableで必要なデータのみをフィルタリングする役割を果たします.つまり、不要なデータを削除して()関数だけをフィルタリングします.

objs変数にはobserverableが発行するデータが含まれます.filter()関数は、偶数のPredicateタイプを判別する関数として設定します.
filter関数にはpredicat(ブール値を返す関数型インタフェース)がパラメータとして含まれています.
Integer[] nums = {10,15,76,38,29

Observable.fromArray(nums)
        .filter(num->num%2==0)
        .subscribe(System.out::println);
10
76
38

🧩 filter()と同様の関数の例

  • first(default):観測可能な最初の値をフィルタします.値がない場合は、デフォルト値
  • を返します.
  • last(default):観測可能な最後の値をフィルタします.値がない場合は、デフォルト値
  • を返します.
  • take(N):最初のN個の値
  • のみが得られる
  • TakeLast(N):最後のN個の値のみのフィルタ
  • skip(N):最初のN個の値
  • をスキップ
  • ジャンプボード(N):最後のN個の値
  • をスキップする
    Integer[] nums= {100,200,300,400,500};
    Single<Integer> single;
    Observable<Integer> source;
    
    single = Observable.fromArray(nums).first(-1);
    single.subscribe(data -> System.out.println("first() value = "+data));
    
    single = Observable.fromArray(nums).last(999);
    single.subscribe(data -> System.out.println("last() value = "+data));
    
    source = Observable.fromArray(nums).take(3);
    source.subscribe(data -> System.out.println("take(3) value = "+data));
    
    source = Observable.fromArray(nums).takeLast(3);
    source.subscribe(data -> System.out.println("takeLast(3) value = "+data));
    
    source = Observable.fromArray(nums).skip(2);
    source.subscribe(data -> System.out.println("skip(2) value = "+data));
    
    source = Observable.fromArray(nums).skipLast(2);
    source.subscribe(data -> System.out.println("skipLast(2) value = "+data));
    first() value = 100
    last() value = 500
    take(3) value = 100
    take(3) value = 200
    take(3) value = 300
    takeLast(3) value = 300
    takeLast(3) value = 400
    takeLast(3) value = 500
    skip(2) value = 300
    skip(2) value = 400
    skip(2) value = 500
    skipLast(2) value = 100
    skipLast(2) value = 200
    skipLast(2) value = 300
    https://beomseok95.tistory.com/24