RxJava - Transforming Operators
Poniżej znajdują się operatory, które są używane do przekształcania elementu wyemitowanego z Observable.
Sr.No. | Operator i opis |
---|---|
1 | Buffer Gromadzi przedmioty z Observable w paczki okresowo, a następnie emituje paczki, a nie przedmioty. |
2 | FlatMap Używane w zagnieżdżonych obserwabli. Przekształca przedmioty w Observables. Następnie spłaszcz elementy w jeden Observable. |
3 | GroupBy Podziel Observable na zbiór Observables zorganizowanych według klucza, aby wyemitować inną grupę elementów. |
4 | Map Zastosuj funkcję do każdego emitowanego elementu, aby go przekształcić. |
5 | Scan Zastosuj funkcję do każdego emitowanego elementu, sekwencyjnie, a następnie emituj kolejną wartość. |
6 | Window Zbiera elementy z okien Observable do Observable okresowo, a następnie emituje okna zamiast elementów. |
Przykład transformacji operatora
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 map operator to transform 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
.map(String::toUpperCase)
.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 -
ABCDEFG