数据量大的 List中,如果要操作数据库 ,可以分批次,比如一次500的数据

 public static void main(String[] args) {//数据模拟List<ReceiptMethodIdAndNameBean> paperNoList = new ArrayList();for (int i = 0; i < 1000; i++) {ReceiptMethodIdAndNameBean selectItemBean = new ReceiptMethodIdAndNameBean();selectItemBean.setLockboxId(String.valueOf(i));paperNoList.add(selectItemBean);}//一次500条int number = 500;int limit = (paperNoList.size() + number - 1) / number;//分成limit次发请求到数据库,in()操作时   可以把多条数据分割成多组请求Stream.iterate(0, n -> n + 1).limit(limit).forEach(a -> {//获取后面1000条中的前500条// 拿到这个参数的流的 (a * applyIdSelectSize)后面的数据  .limit(applyIdSelectSize)->后面数据的500条  .collect(Collectors.toList()->组成一个toListList<ReceiptMethodIdAndNameBean> paperEntityList = paperNoList.stream().skip(a * number).limit(number).collect(Collectors.toList());//doSomething();  eg:数据库操作//举例分批输出for (ReceiptMethodIdAndNameBean receiptMethodIdAndNameBean : paperEntityList) {System.out.println(receiptMethodIdAndNameBean.getLockboxId());}System.out.println("======================================================");});}

使用google guava对List进行分割

 public static void main(String[] args) {//模拟模拟List<Integer> listDemo = Arrays.asList(1, 2, 3, 4, 5, 6, 7);List<List<Integer>> partition = Lists.partition(listDemo, 3);partition.stream().forEach(list -> {System.out.println("-------------------------");list.stream().forEach(a -> {System.out.println(a);});});}

使用apache common collection

List<Integer> intList = Lists.newArrayList(1, 2, 3, 4, 5, 6, 7, 8);
List<List<Integer>> subs = ListUtils.partition(intList, 3);

Stream 大数据量List分批处理 java8相关推荐

  1. list 分批_java8 Stream 大数据量List分批处理切割

    java8 Stream 大数据量List分批处理 //按每3个一组分割 private static final Integer MAX_SEND = 3; public static void m ...

  2. Java8 Stream 数据流,大数据量下的性能效率怎么样?

    今日推荐程序猿惯用口头禅,你被击中了吗? 常见代码重构技巧(非常实用) B站,牛啊. 程序员缺乏经验的 7 种表现 2021年4月程序员工资统计:平均14596元,南京程序员收入挤进一线. 来源:bl ...

  3. kettle分批处理大表数据_采用Kettle分页处理大数据量抽取任务

    需求: 将Oracle数据库中某张表历史数据导入MySQL的一张表里面. 源表(Oracle):table1 目标表(MySQL):table2 数据量:20,000,000 思路: 由于服务器内存资 ...

  4. 读取excel大数据量详解

    需求:导入大数据量excel文件到数据库(测试11MB,40w行数据) 首先说结论:都是大概时间,且其中有两个参数需要调,这里统一下参数大小. 监听器中的缓存list一次性存100000(测试过100 ...

  5. 怎样提高WebService性能大数据量网络传输处理(转)

    1. 直接返回DataSet对象 特点:通常组件化的处理机制,不加任何修饰及 处理: 优点:代码精减.易于处理,小数据量处理较快: 缺点:大数据量的传递处理慢,消耗网络资源: 建议:当应用系统在内网. ...

  6. C# 之 提高WebService性能大数据量网络传输处理

    1.直接返回DataSet对象 特点:通常组件化的处理机制,不加任何修饰及处理: 优点:代码精减.易于处理,小数据量处理较快: 缺点:大数据量的传递处理慢,消耗网络资源: 建议:当应用系统在内网.专网 ...

  7. gRPC大数据量消息传递方法

    1.摘要 本文探讨了gRPC中大数据量消息的传输限制及相应的两个解决方法:修改限制值大小和流式数据传输,并给出了gRPC C++版本下采用流式数据传输的示例代码,在该示例中同时说明了如何在Visual ...

  8. Java实现excel大数据量导入

    情景分析: 通常我们通过poi读取excel文件时,若在用户模式下,由于数据量较大.Sheet较多,很容易出现内存溢出的情况 用户模式读取excel的典型代码如下: FileInputStream f ...

  9. Java 使用 POI 操作 Excel(反射,大数据量)

    Apache POI 基本介绍 Apache POI 是 Apache 软件基金会提供的 100% 开源库.支持 Excel 库的所有基本功能. 图片来源:易百教程 基本概念 在 POI 中,Work ...

最新文章

  1. 剑指offer 平衡二叉树
  2. SpringBoot+Swagger2.7.0实现汉化(2.8.0不行)
  3. Scala使用半生对象来创建伴生类对象(默认单例)
  4. 二十八种未授权访问漏洞合集(暂时最全)
  5. Jquery attr 和removeAttr 的简单使用
  6. 安装EXSI遇到No Network Adapters的解决方案
  7. MPICH C语言接口函数说明(2)
  8. TreeMap、HashMap、LinkedHashMap的区别
  9. Oracle 11g数据库基础教程(第2版)-课后习题-第十三章
  10. 佳能g2810打印机扫描怎么用_佳能g2810怎么自动清洗
  11. newsgroup_txt
  12. autojs切换输入法
  13. 我的个人学习的小总结
  14. 内网安全 域环境的搭建(模仿真实内网环境 做渗透测试.)
  15. 攻防世界WEB进阶之mfw
  16. Linux系统下搭建DNS服务器——原理总结
  17. 为什么Android系统比ios系统卡?
  18. 卧室阳台装修的实用建议分享,极家家居装修怎么样
  19. 12306 抢票 python + selenium + chrome (二) 基础准备的软件和材料
  20. 计算机体系结构——名词解释

热门文章

  1. Gantt(甘特图)与PERT(项目计划评审技术)图
  2. 服务器黑屏只显示鼠标是什么意思,电脑黑屏只显示鼠标怎么办
  3. vue首次赋值不触发watch及watch和computed的区别
  4. Vue3 + TS(一)- 邂逅Vue
  5. 华为策略路由原理与实验
  6. 【applicationContext.xml】spring 配置文件头部声明
  7. 计算机连共享盘被禁止用户,共享文件夹无法访问、设置文件夹访问权限、共享文件夹拒绝访问的解决方法...
  8. Android获取手机WiFi IP地址,MAC地址和网关地址程序实例
  9. 树莓派安装ubuntu 20.04后配置wifi固定ip地址
  10. 迪士尼机器人芭蕾舞_迪士尼公园只有卡通公主?内含大量惊人科技感机器人