gpt4 book ai didi

java - Android RxJava 将嵌套的自定义列表组合在一个列表中

转载 作者:行者123 更新时间:2023-11-29 19:08:10 27 4
gpt4 key购买 nike

层次结构

List<Job> myJob; // consider both list as not empty

List<Tasks> myTasks = myJob.getTasks();

我现在使用下面的代码

  Observable.just(myJob)
.subscribeOn(Schedulers.computation())
.concatMap(Observable::fromIterable)
.subscribe(new DefaultObserver<Job>() {
@Override
public void onNext(@NonNull Job myJob) {
Log.d(Utils.APP_LOG,
"Total Task: \n " +
"Job id-" + myJob.getJobId()
+ "tasks-" + myJob.getTasks().size());

}

@Override
public void onError(@NonNull Throwable e) {

}

@Override
public void onComplete() {

}
});

我能够获得父(我的工作)列表和子(任务)列表。现在我想将每个作业的任务列表合并到一个列表中。

我尝试使用 This accepted answer 执行查询但在我的场景中,作业(父)列表大小和任务(子)列表大小都是动态的。

最佳答案

Single<List<Tasks>> taskObservable = Observable.fromIterable(myJob)
.flatMapIterable(Job::getTasks)
.toList();

上面的代码将执行以下操作:

  1. 获取您的作业列表并将其转换为发出 Jobs
  2. 的流
  3. 对于每个作业,将其转换为发出 Tasks
  4. 的流
  5. 将所有发出的任务收集到一个列表中并发出该 List

关于java - Android RxJava 将嵌套的自定义列表组合在一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com