あなたは以下を見てみましょうことがあります。フィルタされたオブジェクトだけを印刷する方法、またはフィルタされたオブジェクトを含むリストを印刷する方法を示します。ここで、フィルタリングロジックは、偶数が右にあるorg.apache.commons.lang3.tuple.Pair
を保持することです。
public static void main(String[] args) {
// print raw output
getListObservable().subscribe(System.out::println);
// print the objects post filtering
getListObservable().flatMap(v -> Observable.from(v)).filter(p -> p.getRight()%2==0).subscribe(System.out::println);
// print the list refined with only filtered objects
getListObservable().flatMap(v -> Observable.just(v.stream().filter(p -> p.getRight()%2==0).collect(Collectors.toList()))).subscribe(System.out::println);
}
private static Observable<List<Pair<Integer, Integer>>> getListObservable() {
return Observable.create(subscriber -> {
for(int i=0; i<5; i++){
List<Pair<Integer, Integer>> list = new ArrayList<>();
for(int j=0; j<5; j++){
list.add(Pair.of(i, j));
}
subscriber.onNext(list);
}
});
}
、観察の内容を出力:
[(0,0), (0,1), (0,2), (0,3), (0,4)]
[(1,0), (1,1), (1,2), (1,3), (1,4)]
[(2,0), (2,1), (2,2), (2,3), (2,4)]
[(3,0), (3,1), (3,2), (3,3), (3,4)]
[(4,0), (4,1), (4,2), (4,3), (4,4)]
のみフィルタオブジェクトを格納するための出力:のみフィルタオブジェクトを含むリストを格納するための
(0,0)
(0,2)
(0,4)
(1,0)
(1,2)
(1,4)
(2,0)
(2,2)
(2,4)
(3,0)
(3,2)
(3,4)
(4,0)
(4,2)
(4,4)
出力。
[(0,0), (0,2), (0,4)]
[(1,0), (1,2), (1,4)]
[(2,0), (2,2), (2,4)]
[(3,0), (3,2), (3,4)]
[(4,0), (4,2), (4,4)]
ラムダをプリJava 8コードに拡張できますか? – Bootstrapper
Flowableで動作しません –