推荐做法如下:
/**
* 遍历并切片
*
* @param list 待切片的 list
* @param pageSize 切片大小
* @param <T> 泛型类型
* @return
*/
public static <T> List<List<T>> splitList(List<T> list, int pageSize) {
List<List<T>> listArray = new ArrayList<List<T>>();
int listSize = list.size();
for (int i = 0; i < listSize; i += pageSize) {
int toIndex = Math.min(i + pageSize, listSize);
listArray.add(list.subList(i, toIndex));
}
return listArray;
}
详细对比可参考: 将List按照指定大小等分的几种实现方式和效率对比及优化