java 集合拆分成多个子集合

java 复制代码
package com.jiayou.peis.report.biz.utils;

import org.apache.poi.ss.formula.functions.T;

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

public class SplitListUtil {
    /**
     * 拆分集合
     * @param resultList 原集合
     * @param count  指定的长度
     * @return resultLists 拆分后的集合
     */
    public static List<List<String>> splitList(List<String> resultList, int count) {
        // 判断拆分的集合是否为空,或者拆分大小是否小于1,如果是,无法拆分
        if (resultList == null || count < 1) {
            return null;
        }
        List<List<String>> resultLists = new ArrayList<>();
        int size = resultList.size();
        // 判断集合是否大于拆分的长度,大于拆分,小于直接把原集合存入总集合
        if (size > count) {
            int pre = size / count;
            int last = size % count;
            //前面pre个集合,每个集合大小都是count个元素
            for (int i = 0; i < pre; i++) {
                List<String> itemList = new ArrayList<>();
                for (int j = 0; j < count; j++) {
                    itemList.add(resultList.get(i * count + j));
                }
                resultLists.add(itemList);
            }
            // 处理剩余不足count大小的数据
            if (last > 0) {
                List<String> itemList = new ArrayList<>();
                for (int i = 0; i < last; i++) {
                    itemList.add(resultList.get(pre * count + i));
                }
                resultLists.add(itemList);
            }
        } else {
            resultLists.add(resultList);
        }
        return resultLists;
    }

}
相关推荐
AI即插即用36 分钟前
即插即用系列(代码实践)专栏介绍
开发语言·人工智能·深度学习·计算机视觉
码农水水44 分钟前
蚂蚁Java面试被问:混沌工程在分布式系统中的应用
java·linux·开发语言·面试·职场和发展·php
喵了meme1 小时前
c语言经验分享
c语言·开发语言
海边的Kurisu1 小时前
苍穹外卖日记 | Day4 套餐模块
java·苍穹外卖
毕设源码-邱学长1 小时前
【开题答辩全过程】以 走失儿童寻找平台为例,包含答辩的问题和答案
java
Knight_AL1 小时前
用 JOL 验证 synchronized 的锁升级过程(偏向锁 → 轻量级锁 → 重量级锁)
开发语言·jvm·c#
啊阿狸不会拉杆2 小时前
《数字图像处理》第 4 章 - 频域滤波
开发语言·python·数字信号处理·数字图像处理·频率域滤波
他们叫我技术总监2 小时前
Python 列表、集合、字典核心区别
android·java·python
江沉晚呤时2 小时前
从零实现 C# 插件系统:轻松扩展应用功能
java·开发语言·microsoft·c#
梁下轻语的秋缘2 小时前
ESP32-WROOM-32E存储全解析:RAM/Flash/SD卡读写与速度对比
java·后端·spring