Я предполагаю, что вы не можете редактировать retrieve
метод.
Вы можете сделать это:
IntStream.iterate(1, x -> x + 1).mapToObj(x -> retrieve(x, x).get(0))
Если один член последовательности зависит от предыдущего, это будет означатьпересчитывая каждый термин до n
, если вы хотите n
th.
Это немного решает проблему, получая его кусками по 100:
IntStream.iterate(1, x -> x + 1).mapToObj(x -> retrieve(1 + (x - 1) * 100, x * 100)).flatMap(List::stream)
Если вы можете редактироватьчто стоит за этим интерфейсом, вы можете просто сделать этот возврат Stream<Element>
, используя IntStream.iterate
, как указано выше.