Java 常用工具类(35) : List均匀分组


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

/**
 * @Author: liyue
 * @Date: 2022/08/12/23:53
 * @Description:
 */
public class ListUtil {
    /**
     * 将一个list均分成n个list
     *
     * @param source
     * @return
     */
    public static  List> averageAssign(List source, int n) {
        List> result = new ArrayList>();
        int remainder = source.size() % n;  //先计算出余数
        int number = source.size() / n;  //然后是商
        int offset = 0;//偏移量(用以标识加的余数)
        for (int i = 0; i < n; i++) {
            List value;
            if (remainder > 0) {
                value = source.subList(i * number + offset, (i + 1) * number + offset + 1);
                remainder--;
                offset++;
            } else {
                value = source.subList(i * number + offset, (i + 1) * number + offset);
            }
            result.add(value);
        }
        return result;
    }
}

你可能感兴趣的:(java,list,windows,List均匀拆分)