/**
* @author: luce
* @Date: 2023/4/20 14:08
* @Description:
*/
public class SplitUtil {
/**
* 数据分割方法
* @param num 每页数据量
* @param dataList 目标集合
* @param <T>
* @return
*/
public static <T> Map<Integer, List<T>> splitData(Integer num, List<T> dataList) {
HashMap<Integer, List<T>> map = Maps.newHashMap();
int size = dataList.size();
//分割总页数
int count = SplitUtil.countNumBydivisor(size, num);
for (int i = 0; i < count; i++) {
int lastNum = num * (i + 1);
LinkedList<T> linkedList = new LinkedList<>();
for (int j = num * i; j < lastNum && j < size; j++) {
linkedList.add(dataList.get(j));
}
map.put(i, linkedList);
}
return map;
}
/**
* @Description:按除数分割
* @params: [size , divisor]
* @return: int
* @Author: luce
* @Date: 2018/12/23 20:56
**/
public static int countNumBydivisor(int size, int divisor){
int num = size % divisor;
if (num > 0) {
num = size / divisor + 1;
} else {
num = size / divisor;
}
return num ;
}
}
SplitUtil - 大集合List<Object>数据分割成Map<Integer,List<Object>>
于 2023-04-26 09:46:53 首次发布
该代码提供了一个名为SplitUtil的公共类,用于将数据列表按照指定的每页数量进行分割,生成分页后的数据Map。主要包含两个方法:splitData用于实际的分页操作,countNumBydivisor计算总页数。方法使用了HashMap和LinkedList作为数据结构。
摘要由CSDN通过智能技术生成