Me pregunto si hay alguna manera agradable de usar Java 8 para hacer algo como esto:
int amount = 1000; int firstIndex = 0; int lastIndex = firstIndex + amount; List<int> projectIdsList; while (lastIndex < projectIdsList.size()){ doSomethingWhitSubList(projectIdsList.subList(firstIndex, lastIndex)); firstIndex = lastIndex; lastIndex = firstIndex + amount; } doSomethingWhitSubList(projectIdsList.subList(firstIndex, projectIdsList.size());Puede particionar la lista en una sublista usando IntStream , y no estoy muy seguro de su intención después de la partición, pero puede recopilar las sublistas en una lista usando recopilar
List<List<Integer>> subLists = IntStream.range(0,integers.size()) .filter(i->i%amount == 0) .mapToObj(i->integers.subList(i,i+amount > integers.size() ? integers.size() : i+amount)) .collect(Collectors.toList());O también puede usar forEach para cualquier operación después de la partición
IntStream.range(0,integers.size()) .filter(i->i%amount == 0) .mapToObj(i->integers.subList(i,i+amount > integers.size() ? integers.size() : i+amount)) .forEach(this::doSomethingWhitSubList);