Я сделал это в Rx-Java.
Lets consider below example to create List<Single<List<Integer>>>
List<Integer> intList = new ArrayList<>();
Collections.addAll(intList, 10, 20, 30, 40, 50);
List<Integer> intList2 = new ArrayList<>();
Collections.addAll(intList2, 12, 22, 32, 42, 52);
List<Integer> intList3 = new ArrayList<>();
Collections.addAll(intList3, 13, 23, 33, 43, 53);
Single<List<Integer>> singleList = Single.just(intList);
Single<List<Integer>> singleList2 = Single.just(intList2);
Single<List<Integer>> singleList3 = Single.just(intList3);
List<Single<List<Integer>>> listOfSinglesOfListofInts = new ArrayList<>();
Collections.addAll(listOfSinglesOfListofInts, singleList, singleList2, singleList3);
Observable
//Iterate through List<Singles>
.fromIterable(listOfSinglesOfListofInts)
//Get each single, convert to Observable and iterate to get all the integers
.flatMap(
singleListNew -> singleListNew
.toObservable()
//Iterate through each integer inside a list and return it
.flatMapIterable(integers -> integers)
)
//Get all the integers from above and convert to one list
.toList()
//Result is List<Integer>
.subscribe(
result -> System.out.println("**** " + result.toString() + " ****"),
error -> new Throwable(error)
);
Надеюсь, это поможет.