1、使用apache commons collection:
@Test public void givenList_whenParitioningIntoNSublists_thenCorrect() { List<Integer> intList = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8); List<List<Integer>> newList = ListUtils.partition(intList, 3); }
2、自己编写代码
private List<List<Object>> splitList(List<Object> list, int groupSize) { int length = list.size(); // 计算可以分成多少组 int num = (length + groupSize - 1) / groupSize; List<List<Object>> newList = new ArrayList<>(num); for (int i = 0; i < num; i++) { // 开始位置 int fromIndex = i * groupSize; // 结束位置 int toIndex = (i + 1) * groupSize < length ? (i + 1) * groupSize : length; newList.add(list.subList(fromIndex, toIndex)); } return newList; }