等级制
List<Job> myJob;
//认为两个列表都不为空
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() {
}
});
我能够获得父(myJob)列表和子(任务)列表。现在,我想将每个作业的任务列表合并到一个列表中。
我尝试使用This accepted answer执行查询,但是在我的方案中,工作(父)列表大小和任务(子)列表大小都是动态的。
最佳答案
Single<List<Tasks>> taskObservable = Observable.fromIterable(myJob)
.flatMapIterable(Job::getTasks)
.toList();
上面的代码将执行以下操作:
获取您的作业列表并将其转换为发出
Job
的流对于每项工作,将其转换为发出
Tasks
的流将所有发出的任务收集到一个列表中,然后发出
List