package com.rongfeng.bigdata.crm.modules.crm.crmoutside.util;
import java.util.ArrayList;
import java.util.List;
/**
* @author liangyongpeng
* @create 2022/1/7 10:32
*/
public class SplitListUtil<T> {
/**
* 将originalList中的数据拆分为多个list。
*
* @param originalList 数据源
* @param count 每个集合的总量
* @return 返回拆分后的集合集
*/
public List<List<T>> getGroupingList(List<T> originalList, int count ){
List<List<T>> batchList = new ArrayList<>();
// 开始下标
int startIndex = 0;
// 结束下标
int lastIndex = 0;
if(originalList.size()<count){
batchList.add(originalList);
}else{
// 取商
int floor = (int)Math.floor(originalList.size() / count);
// 取模
int mod = originalList.size()%count;
for (int i = 0; i < floor; i++) {
lastIndex = lastIndex + count;
List<T> cutList = originalList.subList(startIndex,lastIndex);
batchList.add(cutList);
startIndex = startIndex + count;
}
// 表示还有最后的一些数据
if(mod > 0){
List<T> lastList = originalList.subList(lastIndex,originalList.size());
batchList.add(lastList);
}
}
return batchList;
}
}
list 数之拆分工具类
最新推荐文章于 2024-06-12 11:11:42 发布