当前位置: 首页 > news >正文

Java List数据量大, 需要分片批次操作

很久前,写过关于list数据量大,分批处理的相关介绍文章(自定义的java代码实现):
SSM Mybatis 批量插入 采用分批处理一次500条_默默不代表沉默-CSDN博客_mybatis分批插入

 

该篇再带来两种 我认为使用挺方便的 分批方式:

1. 使用 apache 的工具包 :
 

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

代码示例:

ListUtils.partition

        List<Integer> list=new ArrayList<>();
        for (int i=0;i<500;i++){
            list.add(i);
        }
        List<List<Integer>> newList = Lists.partition(list, 150);
        for (List<Integer> list1:newList){
            System.out.println(list1.size());
        }

 结果输出:

 

2.使用guava的工具包 :
 

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>

 代码示例:
 

Lists.partition

        List<Integer> list=new ArrayList<>();
        for (int i=0;i<500;i++){
            list.add(i);
        }
        List<List<Integer>> newList = Lists.partition(list, 150);
        for (List<Integer> list1:newList){
            System.out.println(list1.size());
        }

结果输出:

当然还有其他工具包也是封装了这些list分批的函数的,但是我只介绍这两种吧。 

相关文章:

  • Springboot yml配置参数加密 ,jasypt自定义解密器(拓展篇)
  • Springboot 自定义mybatis 拦截器,实现我们要的扩展
  • Eureka 一直刷 Running the evict task with compensationTime 0ms
  • Eureka 注册、下线、续约事件的监听使用
  • Java Thread.sleep(),结合例子只学一次
  • Java ArrayList new出来,默认的容量到底是0还是10 ?
  • Mysql 关于 int(1) 和 int(11) , 我必须要说一下了。
  • SpringCloud 整合注册中心,配置中心 Nacos (九)
  • Springboot 自定义注解AOP实现时间参数格式转换
  • 看什么看啊,你不会还不会抓HTTPS请求报文吧?
  • 做一个合格的开发,从玩转Apipost开始
  • Springboot 整合 企业微信机器人助手推送消息
  • Springboot 同一次调用日志怎么用ID串起来,方便最终查找
  • IDEA 运行Tomcat项目 控制台乱码
  • Springboot 整合 xxljob 使用定时任务调度(新手入门篇)
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CSS魔法堂:Absolute Positioning就这个样
  • HTML中设置input等文本框为不可操作
  • Java 最常见的 200+ 面试题:面试必备
  • JWT究竟是什么呢?
  • Lucene解析 - 基本概念
  • Python socket服务器端、客户端传送信息
  • VUE es6技巧写法(持续更新中~~~)
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从tcpdump抓包看TCP/IP协议
  • 工作手记之html2canvas使用概述
  • 关于Flux,Vuex,Redux的思考
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 坑!为什么View.startAnimation不起作用?
  • 聊聊directory traversal attack
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 我的面试准备过程--容器(更新中)
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​业务双活的数据切换思路设计(下)
  • # 安徽锐锋科技IDMS系统简介
  • #13 yum、编译安装与sed命令的使用
  • (3)nginx 配置(nginx.conf)
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (论文阅读30/100)Convolutional Pose Machines
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Micro Framework初体验(二)
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net对接阿里云CSB服务
  • /dev下添加设备节点的方法步骤(通过device_create)
  • /var/log/cvslog 太大
  • @Autowired标签与 @Resource标签 的区别
  • @ModelAttribute注解使用
  • @RequestBody的使用
  • [ 第一章] JavaScript 简史
  • [20150321]索引空块的问题.txt