集合分割

代码示例:

   /**
     * 方法描述: 集合拆分
     *
     * @param list      数据集合
     * @param groupSize 分割单位,每个子集合大小 groupSize
     * @return java.util.List<java.util.List < T>>
     * @author wqf
     * @date 2021/5/21 14:51
     */
    public static <T> List<List<T>> averageAssign(List<T> list, int groupSize) {
        List<List<T>> result = new ArrayList<>();
        if (groupSize <= 0) {
            return Collections.emptyList();
        }
        //集合大小小于分割大小不处理
        if (list == null || list.size() <= 0 || list.size() <= groupSize) {
            result.add(list);
            return result;
        }
        //数据总数量
        int totalCount = list.size();
        //一次批量插入1000条数据,需要拆分的组数
        int groupCount = totalCount % groupSize == 0 ? totalCount / groupSize : totalCount / groupSize + 1;
        //余数
        int remainder = totalCount % groupSize;
        int i;
        for (i = 0; i < groupCount - 1; i++) {
            List<T> subList = list.subList(i * groupSize, (i + 1) * groupSize);
            result.add(subList);
        }
        if (remainder == 0) {
            result.add(list.subList(i * groupSize, (i + 1) * groupSize));
        } else {
            result.add(list.subList(i * groupSize, totalCount));
        }
        return result;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容