私が持っている機能getColorList
を返すArrayList
のString
種類を
private static List<String> getColorList() {
ArrayList<String> colors = new ArrayList<>();
colors.add("red");
colors.add("green");
colors.add("blue");
colors.add("pink");
colors.add("brown");
return colors;
}
リストがそれらの文字列の長さでObservable<List<Integer>>
ある文字列から取得したいArrayList
。
Observable<List<Integer>> listLengthObservable = Observable.fromArray(getColorList()).map( //Mapping function );
この変換のマッピング関数は何ですか。
リストをフラット化し、各文字列を各長さにマップしてから、リストに戻すことができます。
Single<List<Integer>> listLengthObservable = Observable.fromIterable(getColorList())
.map(s -> s.length())
.toList();
よりエレガントな方法は、次のものを使用することreduceWith
です。
Single<List<Integer>> listLengthObservable = Observable.fromIterable(getColorList())
.reduceWith(() -> new ArrayList<Integer>(), (integers, s) -> {
integers.add(s.length());
return integers;
});
これは、 内のすべてのアイテムをObservable
調べ、提供する入力整数リストを使用してそれらを収集します。
両方の演算子が戻りますSingle
(定義上、単一の放出があるため)、必要に応じて簡単にObservable
使用に変換できtoObservable()
ます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加