<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.4</version> </dependency> import org.apache.commons.collections4.ListUtils; import java.util.ArrayList; import java.util.List; List<String> list =new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); // org.apache.commons:commons-collections4 List<List<String>> partition = ListUtils.partition(list, 3); partition.stream().forEach(sublist -> { System.out.println(sublist); }); /** * [a, b, c] * [d] */ <!-- https://mvnrepository.com/artifact/com.google.guava/guava-collections --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava-collections</artifactId> <version>r03</version> </dependency> import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.List; List<List<String>> partition1 = Lists.partition(list, 3); partition1.stream().forEach(sublist -> { System.out.println(sublist); }); /** * [a, b, c] * [d] */