package com.hzya.frame.split;

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

/**
 * @Author：liuyang
 * @Package：com.hzya.frame.split
 * @Project：kangarooDataCenterV3
 * @name：SplitListByCountUtil
 * @Date：2024/8/2 14:20
 * @Filename：SplitListByCountUtil
 */
public class SplitListByCountUtil {
    /**
     * List集合拆分
     *
     * @param list  原始数据   6000
     * @param count 每个list的元素数量 1000
     * @return 拆分得到的list集合
     */
    public static <T> List<List<T>> splitListByCount(List<T> list, int count) {
        List<List<T>> listAll = new ArrayList<>();
        int size = list.size();
        if (size > count) { //*size:6000  > count: 1000
            int absInt = Math.abs(size / count); //6
            if (size - absInt * count > 0) {
                listAll.add(list.subList(absInt * count, size));
            }
            for (int i = 1; i < absInt + 1; i++) {
                listAll.add(list.subList((i - 1) * count, i * count));
            }
        } else {
            listAll.add(list);
        }
        return listAll;
    }
}
