wordpress免费主题简约,seo行业岗位,望野古诗朗读,深圳装饰公司网站在对数据进行批量操作的时候#xff0c;由于数据量太大#xff0c;需要对数据进行拆分操作#xff0c;分成N个小集合。 
代码如下#xff1a; 
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;import java.util.ArrayList;
import java.u…在对数据进行批量操作的时候由于数据量太大需要对数据进行拆分操作分成N个小集合。 
代码如下 
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;/*** 拆分集合** author HY* date 2023/11/21*/
public class SplitListUtils {/*** 拆分集合* p* 拆分方式有多种示例代码如下** pre* ListT subItemList  null;* // 根据批次数遍历数据* for (int i  0; i  batchCount; i) {*     // 方式一*     //if (i  batchCount - 1) {*     //    itemList  list.subList(subListLength * i, dataSize);*     //} else {*     //    itemList  list.subList(subListLength * i, subListLength * (i  1));*     //}*     //newList.add(itemList);**     // 方式二*     int start  i * subListLength;*     int end  Math.min(start  subListLength, dataSize);**     subItemList  list.subList(start, end);**     newList.add(subItemList);* }* /pre** param T           泛型对象* param list          需要拆分的集合* param subListLength 每个子集合的元素个数* return 返回拆分后的各个集合组成的列表**/public static T ListListT split(ListT list, int subListLength) {ListListT newList  new ArrayList();if (CollUtil.isEmpty(list) || subListLength  0) {return newList;}int dataSize  list.size();if (dataSize  subListLength) {// 数据量不足 subListLength 指定的大小newList.add(list);return newList;}// 批次处理数结果向上取整int batchSize  (int) Math.ceil(1.0 * dataSize / subListLength);return IntStream.range(0, batchSize).mapToObj(index - getList(list, subListLength, dataSize, index)).collect(Collectors.toList());}private static T ListT getList(ListT list, int subListLength, int dataSize, int index) {int start  index * subListLength;int end  Math.min((index  1) * subListLength, dataSize);return list.subList(start, end);}public static void main(String[] args) {int size  10000009;ListString list  IntStream.range(0, size).mapToObj(index - hello:  index).collect(Collectors.toList());// 大集合里面包含多个小集合long beginTime  System.nanoTime();ListListString temps  split(list, 100);System.out.println(耗时  (System.nanoTime() - beginTime));int j  0;// 对大集合里面的每一个小集合进行操作for (ListString obj : temps) {System.out.println(StrUtil.format(row{}, size{}, j, obj.size()));}}
} 
执行平均时间≈15ms