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;
    }

}
相关推荐
gadiaola43 分钟前
【JVM】Java虚拟机(二)——垃圾回收
java·jvm
крон3 小时前
【Auto.js例程】华为备忘录导出到其他手机
开发语言·javascript·智能手机
zh_xuan3 小时前
c++ 单例模式
开发语言·c++·单例模式
coderSong25683 小时前
Java高级 |【实验八】springboot 使用Websocket
java·spring boot·后端·websocket
老胖闲聊4 小时前
Python Copilot【代码辅助工具】 简介
开发语言·python·copilot
Blossom.1184 小时前
使用Python和Scikit-Learn实现机器学习模型调优
开发语言·人工智能·python·深度学习·目标检测·机器学习·scikit-learn
Mr_Air_Boy4 小时前
SpringBoot使用dynamic配置多数据源时使用@Transactional事务在非primary的数据源上遇到的问题
java·spring boot·后端
曹勖之4 小时前
基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
开发语言·python·机器人·ros2
豆沙沙包?5 小时前
2025年- H77-Lc185--45.跳跃游戏II(贪心)--Java版
java·开发语言·游戏
军训猫猫头5 小时前
96.如何使用C#实现串口发送? C#例子
开发语言·c#