私はObservableに外部変数や余分なクラスを持たずにこれを回そうとしています。これは可能ですか?これは、リストを、基本的な検索です:RxJavaリスト内の項目を検索
//...
for(int i = 0; i < items.size(); i++) {
if(items.get(i).id == findId) return i;
}
return -1;
だから、基本的に私は私が見つけた場合、私は、「項目」リスト内の項目のインデックスを返すしたい文字列IDを持っています。
Observable.fromCallable(() -> {
for(int i = 0; i < items.size(); i++) {
if(items.get(i).id == findId) return i;
}
return -1;
});
以上の宣言的なアプローチ:追加せずにこれを行うための
Observable.from(items)
.filter(item -> item.id == findId)
.map(items::indexOf);
2番目(宣言的)アプローチでアイテムが見つからない場合は、エラーをスローしたり、エラーコードを返したり、nullを返すことができますか? – GaRRaPeTa
Observable.from(アイテム) .filter(項目 - > item.id == findId) .toList() .MAP(filteredItems - > { IF(filteredItems.isEmpty())リターン-1; 他リターンitems.indexOf(filteredItems.get(0)); }); – krp