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;
}