RxJava - operatory filtrujące
Poniżej znajdują się operatory, które są używane do selektywnego emitowania elementu (ów) z Observable.
| Sr.No. | Operator i opis |
|---|---|
| 1 | Debounce Emituje elementy tylko po przekroczeniu limitu czasu bez emitowania innego elementu. |
| 2 | Distinct Emituje tylko unikalne przedmioty. |
| 3 | ElementAt emituje tylko element o indeksie n emitowanym przez Observable. |
| 4 | Filter Emituje tylko te elementy, które spełniają daną funkcję predykatu. |
| 5 | First Emituje pierwszy element lub pierwszy element, który spełnił podane kryteria. |
| 6 | IgnoreElements Nie emituje żadnych przedmiotów z Observable, ale zaznacza ukończenie. |
| 7 | Last Emituje ostatni element z Observable. |
| 8 | Sample Emituje najnowszy element w podanym przedziale czasu. |
| 9 | Skip Pomija pierwsze n elementów z Observable. |
| 10 | SkipLast Pomija ostatnie n elementów z Observable. |
| 11 | Take pobiera pierwsze n elementów z Observable. |
| 12 | TakeLast pobiera ostatnie n elementów z Observable. |
Przykład operatora filtrującego
Utwórz następujący program w języku Java, używając dowolnego wybranego edytora, na przykład w 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);
}
}
Sprawdź wynik
Skompiluj klasę przy użyciu javac kompilator w następujący sposób -
C:\RxJava>javac ObservableTester.java
Teraz uruchom ObservableTester w następujący sposób -
C:\RxJava>java ObservableTester
Powinien dać następujący wynik -
ab