package com.ruoyi.ibs.grid.util;

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

/**
 * @Author 吴凯程
 * @Date 2025/4/27
 **/

public class ArrayListUtil {
    /**
     * 将一个ArrayList根据指定的长度分割成多个小的ArrayList
     *
     * @param originalList 需要分割的原ArrayList
     * @param sliceLength  每段的长度
     * @return 包含所有切片的列表
     */
    public static <T> List<List<T>> sliceArrayList(List<T> originalList, int sliceLength) {
        ArrayList<List<T>> slices = new ArrayList<>();
        int size = originalList.size();

        // 计算需要分割的总次数
        int totalSlices = (int) Math.ceil((double) size / sliceLength);

        // 遍历分割
        for (int i = 0; i < totalSlices; i++) {
            int start = i * sliceLength;
            int end = Math.min(start + sliceLength, size);
            List<T> slice = new ArrayList<>(originalList.subList(start, end));
            slices.add(slice);
        }
        return slices;
    }
}
