У меня есть методы, которые отправляют запрос в API и формируют список результатов.
public Map<Long, Metadata> loadAll(Iterable<? extends Long> keys)
throws Exception {
List<Long> keyList = Lists.newArrayList(keys);
List<DTO> dtos = new ArrayList<>();
int from = 0, to=0 ;
for(int count=0; count <= keyList.size(); ) {
count += batchSize;
to = (count > keyList.size() ? keyList.size() : count);
dtos.addAll(search.getDTOs(keyList.subList(from, to)));
from = to;
}
Map<Long, Metadata> map =
dtos.stream().collect(Collectors.toMap(DTO::getId, MetadataLoader::convertToLocalObject));
return map;
}
Мне было интересно, есть ли компактный способ сделать это с помощью Observable.range (....