码迷,mamicode.com
首页 > 编程语言 > 详细

Java模拟数据量过大时批量处理数据实现

时间:2018-08-27 21:35:46      阅读:903      评论:0      收藏:0      [点我收藏+]

标签:class   time   次数   integer   for   bsp   inf   问题   new   

代码:

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模拟数据量过大时批量处理数据实现

标签:class   time   次数   integer   for   bsp   inf   问题   new   

原文地址:https://www.cnblogs.com/Big-Boss/p/9543667.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!