两种方式拆分:

第一种: 拆分成固定个数的list

/**
     * 将一个list均分成n个list,主要通过偏移量来实现的
     * @param source
     * @return
     */
     public static <T> List<List<T>> averageAssign(List<T> source,int n){
     List<List<T>> result=new ArrayList<List<T>>();
     int remaider=source.size()%n; //(先计算出余数)
     int number=source.size()/n; //然后是商
     int offset=0;//偏移量
     for(int i=0;i<n;i++){
      List<T> value=null;
      if(remaider>0){
      value=source.subList(i*number+offset, (i+1)*number+offset+1);
      remaider--;
      offset++;
      }else{
      value=source.subList(i*number+offset, (i+1)*number+offset);
      }
      result.add(value);
     }
     return result;
     }

public static void main(String[] args) {
        List<Integer> integers=new ArrayList<>();
         integers.add(1);
         integers.add(2);
         integers.add(3);
         integers.add(4);
         integers.add(5);
         integers.add(6);
         List<List<Integer>> lists=averageAssign(integers, 2);
         System.out.println(lists);
    }

执行结果:[[1, 2, 3], [4, 5, 6]]

第二种,拆分成固定长度的list

/**** @param list 要拆分的list* @param size 每次拆分的大小* @param <T>* @return*/
public <T> List<List<T>> split(List<T> list, int size){if(list==null || list.size()==0){return null;}// 获得数据总量int count = list.size();// 计算出要分成几个批次int pageCount = (count / size) + (count % size == 0 ? 0 : 1);List<List<T>> temp = new ArrayList<>(pageCount);for (int i = 0, from = 0,to = 0; i < pageCount; i++) {from = i*size;to = from+size;// 如果超过总数量,则取到最后一个数的位置to = to>count?count:to;// 对list 进行拆分List<T> list1 = list.subList(from, to);// 将拆分后的list放入大List返回temp.add(list1);// 也可以改造本方法,直接在此处做操作}return temp;
}

public static void main(String[] args) {
        List<Integer> integers=new ArrayList<>();
         integers.add(1);
         integers.add(2);
         integers.add(3);
         integers.add(4);
         integers.add(5);
         integers.add(6);
         List<List<Integer>> lists= split(integers, 2);
         System.out.println(lists);
    }

执行结果: [[1, 2], [3, 4], [5, 6]]

大list拆分多个小的list相关推荐

  1. python 中将大列表拆分成小列表

    一.将大列表拆分为小列表 >>> a = [1,2,3,4,5,6,7,8,9,0]>>> n = 3 >>> c= [a[i:i+n] for ...

  2. 大文件拆分小文件求top_将文件拆分为流

    大文件拆分小文件求top 上周,我讨论了类Pattern新的(@since 1.8)方法splitAsStream只能根据流的需要从字符序列中读取字符序列,并且不能继续进行模式匹配以创建所有可能的元素 ...

  3. Java把一个大集合拆分成多个小集合,可以利用多线程提升并发处理效率

    场景: 在开发中,如果一个集合中的数据量特别大,那么对这个集合进行循环处理业务可能就会比较耗时,为了提升效率,可以考虑把大集合拆分成多个小集合,然后用多线程对拆分后的多个小集合进行处理 拆分: 1.拆 ...

  4. 这下真麻了!亿级别大表拆分心路历程!

    文章来源:https://c1n.cn/dPgm1 前言 笔者是在两年前接手公司的财务系统的开发和维护工作.在系统移交的初期,笔者和团队就发现,系统内有一张 5000W+ 的大表. 跟踪代码发现,该表 ...

  5. 机器学习中的数据不平衡问题----通过随机采样比例大的类别使得训练集中大类的个数与小类相当,或者模型中加入惩罚项...

    机器学习中的数据不平衡问题 摘自:http://wap.sciencenet.cn/blogview.aspx?id=377102 最近碰到一个问题,其中的阳性数据比阴性数据少很多,这样的数据集在进行 ...

  6. Java黑皮书课后题第5章:*5.23(演示抵消错误)当处理一个很大的数字或很小的数字时候,会产生一个抵消错误。……编写程序对上面的数列从左到右和从右向左计算的结果进行比较,n=50000

    5.23(演示抵消错误)1 + 1/2 + 1/3 + -- + 1/n,编写程序对上面的数列从左到右和从右向左计算的结果进行比较,n=50000 题目 题目概述 破题 代码 运行示例 题目 题目概述 ...

  7. 将一个大文件分成若干个小文件方法

    2019独角兽企业重金招聘Python工程师标准>>> 将一个大文件分成若干个小文件方法 例如将一个BLM.txt文件分成前缀为 BLM_ 的1000个小文件,后缀为系数形式,且后缀 ...

  8. MariaDB 10的复制 集群 高可用搭建 大表拆分【持续更新中】

    视频地址 http://edu.51cto.com/course/course_id-1691.html MariaDB 10培训课程 第一部分 复制 1.基于GTID方式复制配置及注意事项 2.基于 ...

  9. 大飞鸽传书!小飞鸽传书!

    大飞鸽传书!小飞鸽传书!小大飞鸽传书! 可爱的小萌飞鸽传书,毛绒绒的眼睛,短短的飞鸽传书牙.虽然身躯庞大,但神态天真,一看就是个小孩子. 众人正在看小大飞鸽传书,突然从旁边的草丛里跳出一只花猫.哇塞, ...

最新文章

  1. 如何定制一款12306抢票浏览器——完结篇
  2. ubuntu安装mysql可视化工具MySQL-workbench及简单操作
  3. 【Android UI】TextView的垂直方向概念之top,bottom,ascent,descent,baseline
  4. 【Network Security!】搭建文件分享服务器,其实也可以很简单-HFS
  5. python的优点-python的功能与优缺点
  6. ETL工具Kettle使用
  7. C# 数据库系统中使用GDI+绘制柱状图
  8. c程序设计语言 hello,Hello, World!
  9. I2C总线 | 百度百科
  10. ServHa双机热备简单配置
  11. linux扫描后台地址,Linux如何查看和控制进程
  12. {基于Applet的J2ME模拟器}和{microemulator}[J2ME推荐]
  13. 安装SQL Server 2008 失败:检查是否需要挂起计算机重新启动。挂起重新启动会导致安装程序失败
  14. rd9700 linux网卡驱动,rd9700 usb网卡驱动
  15. 扩展城市信道etu模型matlab仿真,信道估计
  16. java乘法口诀编程题_【视频+图文】Java经典基础练习题(二)输出9*9乘法口诀表...
  17. ZeroTier 和 FRP 速度对比实验(附搭建方法)
  18. 【整理归纳】Linux中文件的Access,Modify,Change区别
  19. DPU网络开发SDK—DPDK(六)
  20. 痞子衡嵌入式:ARM Cortex-M内核那些事(5)- 一表搜罗指令集

热门文章

  1. The type org.springframework.context.ConfigurableApplicationContext cannot be resolved. It is indire
  2. YOLOV8改进:在c2f模块中的不同位置加入NAMAAttention注意力机制
  3. 内涵段子:我朋友向女孩表白多次,女孩说:我肚子里已经有人了
  4. 论文的 Declaration of Competing Interest 与 作者简介
  5. 捷报!快商通斩获数字中国创新大赛2大重量级奖项
  6. AI在工业机器人系统中的应用
  7. 设置响应对象的编码格式
  8. 制造业仓库很乱,该如何有效的管理呢?
  9. ci发什么音标_英语单词cicatrice怎么读,cicatrice的音标是什么,cicatrice是什么意思 - 音标网...
  10. AirPods Pro“主动降噪”功能无法正常工作解决方法