有些时候我们需要对一批数据进行分批处理, 使用subList方法可以实现对List集合进行固定长度的分割.
/**
* 集合拆分
*
* @param list 原集合
* @param pageSize 子集合长度
* @param <T>
* @return
*/
public static <T> List<List<T>> groupList(List<T> list, int pageSize) {
List<List<T>> listGroup = new ArrayList<List<T>>();
int listSize = list.size();
for (int i = 0; i < listSize; i += pageSize) {
if (i + pageSize > listSize) {
pageSize = listSize - i;
}
List<T> newList = list.subList(i, i + pageSize);
listGroup.add(newList);
}
return listGroup;
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
List<List<String>> lists = groupList(list, 2);
System.out.println("list:" + list.toString());
System.out.println(lists);
}
输出结果 :