package com.cirle.scientific.utils;

import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author DeMin
 * @date 2022年06月13日 23:17
 */
@Slf4j
public class QkListUtil {


    /**
     * 指定大小，分割集合，将集合按照规定个数分为n个部分
     */
    public static <T> List<List<T>> splitList(List<T> list, int length){
        if (list.isEmpty() || list == null || length < 1) {
            return Collections.emptyList();
        }
        //result 最终分片后结果
        List<List<T>> result = new ArrayList<List<T>>();

        int size = list.size();
        log.info("分片前list大小： " + size);
        //count分片大小
        int count = (size + length -1) / length;
        log.info("每片大小为 " + length + ";共分为 " + count +" 片");
        for (int i = 0; i < count; i++) {
            List<T> subList = list.subList(i*length, (i+1)*length > size ? size : (i+1)*length);
            result.add(subList);
        }
        return result;
    }
}
