方法一:

  代码如下: 

import java.util.ArrayList;
import java.util.List;
/**
* 模拟批量处理数据(一)
* 当数据量过大过多导致超时等问题可以将数据进行分批处理
* @author 【】
*
*/
public class BatchUtil2 { public static void listBatchUtil(List<Integer> lists) { System.out.println(lists);
System.out.println(lists.size());
int temp = 1;
for (int i = 0; i < lists.size(); i += 10) {
System.out.println("======================进行第" + temp + "次批处理=======================");
if (lists.size() - i > 10) {
System.out.println(lists.subList(i, i + 10).toString());
} else {
if (lists.size() > i) {
System.out.println(lists.subList(i, lists.size()).toString());
}
}
temp += 1;
}
} public static void main(String[] args) {
List<Integer> lists = new ArrayList<>();
for (int i = 1; i <= 26; i++) {
lists.add(i);
}
listBatchUtil(lists);
}
}

  实现效果:

方法二:

  代码如下:

import java.util.ArrayList;
import java.util.List;
/**
* 模拟批量处理数据(二)
* 当数据量过大过多导致超时等问题可以将数据进行分批处理
* @author 【】
*
*/
public class BatchUtil { public static void listBatchUtil(List<Integer> lists) { System.out.println(lists);
// 定义批处理的数据数量(即批处理条件)
int num = 10;
// 判断集合数量,如果小于等于定义的数量(即未达到批处理条件),直接进行处理
if (lists.size() <= num) { System.out.println(lists.size());
System.out.println(lists.toString().substring(1, lists.toString().lastIndexOf("]"))); return;
}
// 如果大于定义的数量,按定义数量进行批处理
int times = lists.size()/num + 1; System.out.println("一共要进行"+times+"次批处理");
// 遍历分批处理次数,并进行批处理
for (int i = 0; i < times; i++) {
// 定义要进行批处理的临时集合
List<Integer> tempList = new ArrayList<>();
// 将要批处理数据放入临时集合中
for (int j = i*num; j < lists.size(); j++) {
tempList.add(lists.get(j));
if (tempList.size() == num) {
break;
}
} // 进行批处理
System.out.println("======================进行第"+(i+1)+"次批处理=======================");
System.out.println(tempList.size());
System.out.println(tempList.toString().substring(1, tempList.toString().lastIndexOf("]")));
System.out.println("=========================================================");
}
} public static void main(String[] args) {
List<Integer> lists = new ArrayList<>();
for (int i = 1; i <= 26; i++) {
lists.add(i);
}
listBatchUtil(lists);
}
}

  实现效果:

Java模拟数据量过大时批量处理数据的两种实现方法的更多相关文章

  1. 斯坦福大学公开课机器学习:machine learning system design | data for machine learning(数据量很大时,学习算法表现比较好的原理)

    下图为四种不同算法应用在不同大小数据量时的表现,可以看出,随着数据量的增大,算法的表现趋于接近.即不管多么糟糕的算法,数据量非常大的时候,算法表现也可以很好. 数据量很大时,学习算法表现比较好的原理: ...

  2. storm正常任务数据量过大时造成定时任务不执行的问题

    在执行storm的定时任务时,发现storm普通任务数据量过大时造成定时任务不执行, 同时设置了storm的普通任务和定时任务,定时任务设置5秒执行1次. 普通任务的数据时从spout中不停发射字符串 ...

  3. Mysql数据量较大时分页查询优化

    据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id 是主键,vtype是int,vtype是索引. 最后co ...

  4. chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法[bubuko.com]

    chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法,原文:http://bubuko.com/infodetail-328671.html 默认情况下如下图 Y轴并不是从0开始 ...

  5. 针对数据量较大的表,需要进行跨库复制,采用navcat 实现sqlite数据库跨数据库的数据表迁移 [转载]

    2014年12月13日 14:36 新浪博客 (转自http://www.cnblogs.com/nmj1986/archive/2012/09/17/2688827.html) 需求: 有两个不同的 ...

  6. phpmyadmin 打开数据表较多,数据量较大的数据库时出现超时的解决办法

    用phpmyadmin打开数据表较多,数据量较大的数据库时,会出现超时,或者等半天打开了说数据库没有表.并且即便打开了,再进行其他浏览,编辑,sql等操作,页面也是相当慢的,慢等几乎无法忍受.这里慢也 ...

  7. 解决mysql导入数据量很大导致失败及查找my.ini 位置(my.ini)在哪

    数据库数据量很大的数据库导入到本地时,会等很久,然而等很久之后还是显示失败: 这是就要看看自己本地的没mysql是否设置了超时等待,如果报相关time_out这些,可以把mysql.ini尾部添加ma ...

  8. Mysql中使用JDBC流式查询避免数据量过大导致OOM

    一.前言 java 中MySQL JDBC 封装了流式查询操作,通过设置几个参数,就可以避免一次返回数据过大导致 OOM. 二.如何使用 2.1 之前查询 public void selectData ...

  9. poi导出excel数据量过大

    问题:使用poi导出excel,数据量过大导致内存溢出 解决思路:1.多sheet导出 2.生成多个excel打包下载 3.生成csv下载 本文使用的是第二个思路,代码如下: poiUtil工具类 p ...

随机推荐

  1. js 背景从无到黑的渐变 字从白到黑的渐变

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 解决time命令输出信息的重定向问题

    解决time命令输出信息的重定向问题 time命令的输出信息是打印在标准错误输出上的, 我们通过一个简单的尝试来验证一下. [root@web186 root]# time find . -name ...

  3. GDI 像素(5)

    RGB 颜色 使用 RGB 宏可以创建一个由三个整数值(R.G.B)的 COLORREF 值. COLORREF RGB( BYTE byRed, // 红色值(R) BYTE byGreen, // ...

  4. [网络流24题] 方格取数问题/骑士共存问题 (最大流->最大权闭合图)

    洛谷传送门 LOJ传送门 和太空飞行计划问题一样,这依然是一道最大权闭合图问题 “骑士共存问题”是“方格取数问题”的弱化版,本题解不再赘述“骑士共存问题”的做法 分析题目,如果我们能把所有方格的数都给 ...

  5. MYSQL存储过程初步认知

    存储过程(Stored Procedure): 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点:将重 ...

  6. 【CodeForces 271D】Good Substrings

    [链接] 我是链接,点我呀:) [题意] [题解] 字典树 我们可以两重循环(i,j) 来枚举所有的子串 即i=1,j=1,2,3... i=2,j = 2,3,4,.. 于是我们在i变化的时候(就是 ...

  7. C#中的LINQ 基础

    1.LINQ的数据源 必须可枚举的,即必须是数组或者集合 (继承了IEnumerable<T>接口就可以,注意是IEnumerable<T>,不是IEnumerable接口,不 ...

  8. jqury+animation+setTimeOut实现渐变显示与隐藏动画

    初始效果 实现效果 1,编写HTMl结构代码 <div class="box"> <i class="icon"></i> ...

  9. CF894A QAQ

    CF894A QAQ 题意翻译 题目大意: 给定一个字符串,字符串长度<=100,现在要求出字符串中'QAQ'的个数,注意,'QAQ'可以不连续,只要有顺序就可以了,例如QABQ也有一个QAQ ...

  10. [SharePoint2010开发入门经典]11、与Office集成

    本章概要: 1.创建office集成解决方案使用代码或非代码形式 2.使用内容类型作为能映射到文档库的文档 3.使用InfoPath管理表单 4.使用工作流管理业务流程 5.使用office2010服 ...