が、私は基本的に観察可能更新単一のリスト項目RXJava
private static List<Book> books
public static void replaceBook(Book book) {
for (int i = 0; i < books.size(); i++) {
if (books.get(i).getId().equals(book.getId())) {
books.set(i, book);
}
}
}
にループのためにこれを変換したいこれは私がこれまで持っているものであるが、その作業はありません。私は、マップ演算子は、フィルタリングされた項目を更新すると思ったが、私は何かが欠けているようだ。
Observable.from(books).filter(new Func1<Book, Boolean>() {
@Override
public Boolean call(Book b) {
return b.getId().equals(book.getId());
}
}).map(new Func1<Book, Book>() {
@Override
public Book call(Book b) {
return book;
}
}).subscribe();
ボリスとTassosの回答に基づいて更新
私は
Observable.from(books)
.map(b -> b.getId().equals(book.getId()) ? book : b)
.toList()
.subscribe(s -> books = s);
を動作するように思われる以下の答えを得たあなたは、 'フィルタ' 'リストからいくつかの要素をしたいですか '?リスト内の一部のブックを置き換えてリストを返す? –
リストアイテムを置き換えてリストを返したいと思います。 – sirFunkenstine