Учебники

RxJava — Операторы объединения

Ниже приведены операторы, которые используются для создания одной наблюдаемой из нескольких наблюдаемых.

Sr.No. Оператор и описание
1 И / И / Когда

Объедините наборы предметов, используя посредников Pattern и Plan.

2 CombineLatest

Объедините последний элемент, испускаемый каждым Наблюдаемым через указанную функцию, и выпустите полученный элемент.

3 Присоединиться

Объедините элементы, испускаемые двумя Наблюдаемыми, если они испускаются в течение периода времени второго испускаемого Наблюдаемого элемента.

4 сливаться

Объединяет предметы, испускаемые Observables.

5 StartWith

Испускать указанную последовательность предметов перед тем, как начать испускать предметы из источника Observable

6 переключатель

Издает самые последние предметы, испускаемые Observables.

7 застежкамолния

Объединяет элементы Observables на основе функции и испускает полученные элементы.

Объедините наборы предметов, используя посредников Pattern и Plan.

Объедините последний элемент, испускаемый каждым Наблюдаемым через указанную функцию, и выпустите полученный элемент.

Объедините элементы, испускаемые двумя Наблюдаемыми, если они испускаются в течение периода времени второго испускаемого Наблюдаемого элемента.

Объединяет предметы, испускаемые Observables.

Испускать указанную последовательность предметов перед тем, как начать испускать предметы из источника Observable

Издает самые последние предметы, испускаемые Observables.

Объединяет элементы Observables на основе функции и испускает полученные элементы.

Пример оператора объединения

Создайте следующую Java-программу, используя любой редактор по вашему выбору, например, в C: \> RxJava.

ObservableTester.java

import io.reactivex.Observable;
//Using combineLatest operator to combine Observables
public class ObservableTester {
   public static void main(String[] args) {    
      Integer[] numbers = { 1, 2, 3, 4, 5, 6};
      String[] letters = {"a", "b", "c", "d", "e", "f", "g"};
      final StringBuilder result = new StringBuilder();
      Observable<String> observable1 = Observable.fromArray(letters);
      Observable<Integer> observable2 = Observable.fromArray(numbers);
      Observable.combineLatest(observable1, observable2, (a,b) -> a + b)
         .subscribe( letter -> result.append(letter));
      System.out.println(result);
   }
}

Проверьте результат

Скомпилируйте класс с помощью компилятора javac следующим образом:

C:\RxJava>javac ObservableTester.java

Теперь запустите ObservableTester следующим образом:

C:\RxJava>java ObservableTester

Он должен произвести следующий вывод —