I'm not sure if in the java 8 similar functionality has been provided. Of course you can use foreach with anonymous function but it's more unreadable than in the java 8 with using List.subList().
Solution in the Java 7:
final Integer sizeOfChunk = 3;
List<Integer> inputList = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
//Guava
List<List<Integer>> firstListOfLists = Lists.partition(inputList, sizeOfChunk);
//Java 7
List<List<Integer>> secondListOfLists = new ArrayList<List<Integer>>();
for (int i=0; i<inputList.size()-sizeOfChunk; i+=sizeOfChunk) {
secondListOfLists.add(inputList.subList(i, i+sizeOfChunk));
}
if (inputList.size() % sizeOfChunk != 0) {
secondListOfLists.add(inputList.subList(secondListOfLists.size()*sizeOfChunk, inputList.size()));
}
System.out.println("Guava: " + firstListOfLists);
System.out.println("Java 7: " + secondListOfLists);
EDIT
After your comment, it will be:
List<Optional<ResultDTO>> results = nameBatches .stream().map(l -> executeRequest(something, l)).collect(Collectors.toList());