最近处理一个需求,需要将一批数据入库,处理的时候发现数据量超级大,于是就将批数据进行分割分批处理。
直接上码
package com.store.common.utils;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class CommonUtil {
/**
* 计算切分次数
* @param size 需要分割的集合长度
* @param maxNum 集合最大的数量
* @param <T>
* @return 切分次数
*/
private static Integer countStep(Integer size, Integer maxNum) {
return (size + maxNum - 1) / maxNum;
}
/**
* 将一个集合进行分割
* @param collections 需要分割的集合 (List LinkedHashSet TreeSet LinkedList)
* @param maxNum 集合最大的数量
* @param <T>
* @return 分割后的集合
*/
public static <T> Collection<Collection<T>> subCollection(Collection<T> collections,