RxJava - Операторы фильтрации
Ниже приведены операторы, которые используются для выборочной выдачи элемента (ов) из Observable.
| Sr.No. | Оператор и описание |
|---|---|
| 1 | Debounce Выдает элементы только тогда, когда истекает тайм-аут, без передачи другого элемента. |
| 2 | Distinct Испускает только уникальные предметы. |
| 3 | ElementAt испускать только элемент с индексом n, выдаваемый Observable. |
| 4 | Filter Испускает только те элементы, которые передают данную функцию-предикат. |
| 5 | First Выдает первый элемент или первый элемент, который соответствует заданным критериям. |
| 6 | IgnoreElements Не генерирует никаких элементов из Observable, но отмечает завершение. |
| 7 | Last Испускает последний элемент из Observable. |
| 8 | Sample Выдает самый последний элемент с заданным интервалом времени. |
| 9 | Skip Пропускает первые n элементов из Observable. |
| 10 | SkipLast Пропускает последние n элементов из наблюдаемого. |
| 11 | Take берет первые n элементов из Observable. |
| 12 | TakeLast берет последние n элементов из Observable. |
Пример оператора фильтрации
Создайте следующую программу Java, используя любой редактор по вашему выбору, например, C: \> RxJava.
ObservableTester.java
import io.reactivex.Observable;
//Using take operator to filter an Observable
public class ObservableTester {
public static void main(String[] args) {
String[] letters = {"a", "b", "c", "d", "e", "f", "g"};
final StringBuilder result = new StringBuilder();
Observable<String> observable = Observable.fromArray(letters);
observable
.take(2)
.subscribe( letter -> result.append(letter));
System.out.println(result);
}
}
Проверить результат
Скомпилируйте класс, используя javac компилятор следующим образом -
C:\RxJava>javac ObservableTester.java
Теперь запустите ObservableTester следующим образом -
C:\RxJava>java ObservableTester
Он должен выдать следующий результат -
ab