У меня есть список объектов: ArrayList<T> arrayList;
и на каждом объекте списка есть Id: T.getId()
который мне нужен для выполнения запроса. В ответ выбирается другой список объектов: ArrayList<E> anotherList
Я хочу сделать несколько вызовов на основе идентификатора: T.getId()
и для каждого ответа я хочу объединить этот объект: T
с ответом: ArrayList<E> anotherList
на хэш-карте: Hashmap<T, ArrayList<E> anotherList>
и вернуть значение после завершения всех запросов. Есть ли способ добиться этого с помощью rxJava
?:
//For every `T.getId()`, fetch `ArrayList<E> anotherList`
for(int i=0; i<arrayList.size(); i++){
T object = arrayList.get(i);
fetchData(T.getId());
}
при каждом onNext()
слиянии(hashmap.put()) T
с ответом ArrayList<E> anotherList
на Hashmap<T, ArrayList<E> anotherList>
. После завершения всех запросов верните окончательный hashmap
, содержащий эти пары:
retrofit.fetchData(T.getId())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.flatMap(...)
.merge(...)
.subscribeWith(...)
Есть ли способ добиться этого?