過濾運算子

你可以使用 filter 運算子根據謂詞方法的結果從值流中過濾掉專案。

換句話說,從 Observer 傳遞到訂閱者的專案將根據你傳遞 filter 的函式被丟棄,如果函式返回 false 某個值,該值將被過濾掉。

例:

List<Integer> integers = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

Observable.from(integers)
    .filter(number -> {
        return (number  % 2 == 0); 
        // odd numbers will return false, that will cause them to be filtered 
    })
    .map(i -> {
        return Math.pow(i, 2); // take each number and multiply by power of 2
    }) 
    .subscribe(onNext -> {
         System.out.println(onNext); // print out the remaining numbers
    });

此程式碼將列印出來

0.0
4.0
16.0
36.0
64.0