java - 如何根据一组值更新数据模型

标签 java android rx-java rx-java2 iterable

该场景是根据一组整数值更新列表内的数据模型。

例如 ArrayList 具有:

Student {
    name: "abc",
    id: 1,
    hasPassed: false
}...

现在我有一组整数,基本上有 其中的学生 ID {1, 2, ...} 表示通过的学生的学生 ID。

我在我的观察者onNext方法中获取了Student的arrayList。

如何根据从整数 Set 获取的学生 ID 更新学生对象的 hasPassed 字段?我正在尝试使用 RxJava2 来执行此操作。

最佳答案

您可以首先使用 flatmapIterable() 观察器迭代学生集,该观察器将逐一发出要处理的项目,然后您可以使用 flatmap() 对发出的项目应用操作,最后,如果您想要列表返回使用 toList() 运算符..它可能看起来像这样

Observable.fromIterable(studentList) //emit items one by one
    .flatMap(studentItem -> { //make an operation on item
      if (ids.contains(studentItem.getId())) {
        studentItem.setHasPassed(true);
      }
      return Observable.just(studentItem); //emit item 
    })
    .toList() //get all items on a list
    .subscribe(finalList->{ 
         //handle the result
        }, throwable -> {
         //handlle error
    });

关于java - 如何根据一组值更新数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46388008/

相关文章:

java - 在java中,当找到字符串匹配时如何打印文件中的整行

java - 我的 Android Studio 项目中出现什么运行时错误?

javascript - touchmove 和 gesturechange 之间有什么区别?

android - 更新同一订阅中的 flatMap 并发限制

java - RxJava2 - Mutlicasting Singles、Maybes 和 Completables?

android - RxJava2 去抖功能在 RecyclerView 中无法正常工作 - Android

java - 自定义jsp页面

java - Java 中的 OpenCV 现有 C++ 代码

android - SOAP 客户端连接的参数

java - 使用 ThreeTenABP 时如何将 Date 转换为 LocalDate?