RxJava - Operatori di filtraggio
Di seguito sono riportati gli operatori che vengono utilizzati per emettere selettivamente elementi da un osservabile.
Sr.No. | Operatore e descrizione |
---|---|
1 | Debounce Emette elementi solo quando si verifica il timeout senza emettere un altro elemento. |
2 | Distinct Emette solo oggetti unici. |
3 | ElementAt emette solo elementi con indice n emesso da un osservabile. |
4 | Filter Emette solo quegli elementi che passano la funzione predicato data. |
5 | First Emette il primo elemento o il primo elemento che ha superato i criteri specificati. |
6 | IgnoreElements Non emette alcun oggetto da Observable ma segna il completamento. |
7 | Last Emette l'ultimo elemento da Observable. |
8 | Sample Emette l'elemento più recente con un determinato intervallo di tempo. |
9 | Skip Salta i primi n elementi da un osservabile. |
10 | SkipLast Salta gli ultimi n elementi da un osservabile. |
11 | Take prende i primi n elementi da un osservabile. |
12 | TakeLast prende gli ultimi n elementi da un osservabile. |
Esempio di operatore di filtro
Crea il seguente programma Java utilizzando qualsiasi editor di tua scelta, ad esempio 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);
}
}
Verifica il risultato
Compila la classe usando javac compilatore come segue -
C:\RxJava>javac ObservableTester.java
Ora esegui ObservableTester come segue:
C:\RxJava>java ObservableTester
Dovrebbe produrre il seguente output:
ab