按批次处理list数据 (list按条数取)
按批次处理list数据的两种方法
主要应用于list存储数据过多,不能使list整体进行其余操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
package net.xsoftlab.na; import java.util.ArrayList; import java.util.List; /** * 按批次处理list数据的两种方法 * 主要应用于list存储数据过多,不能使list整体进行其余操作 * @author zhouhongna * @date 2014-10-20 * */ public class DealListByBatch { /** * 通过list的 subList(int fromIndex, int toIndex)方法实现 * @param sourList 源list * @param batchCount 分组条数 */ public static void dealBySubList(List<Object> sourList, int batchCount){ int sourListSize = sourList.size(); int subCount = sourListSize%batchCount== 0 ? sourListSize/batchCount : sourListSize/batchCount+ 1 ; int startIndext = 0 ; int stopIndext = 0 ; for ( int i= 0 ;i<subCount;i++){ stopIndext = (i==subCount- 1 ) ? stopIndext + sourListSize%batchCount : stopIndext + batchCount; List<Object> tempList = new ArrayList<Object>(sourList.subList(startIndext, stopIndext)); printList(tempList); startIndext = stopIndext; } } /** * 通过源list数据的逐条转移实现 * @param sourList 源list * @param batchCount 分组条数 */ public static void dealByRemove(List<Object> sourList, int batchCount){ List<Object> tempList = new ArrayList<Object>(); for ( int i = 0 ; i < sourList.size(); i++) { tempList.add(sourList.get(i)); if ((i+ 1 )%batchCount== 0 || (i+ 1 )==sourList.size()){ printList(tempList); tempList.clear(); } } } /** * 打印方法 充当list每批次数据的处理方法 * @param sourList */ public static void printList(List<Object> sourList){ for ( int j= 0 ;j<sourList.size();j++){ System.out.println(sourList.get(j)); } System.out.println( "------------------------" ); } /** * 测试主方法 * @param args */ public static void main(String[] args) { List<Object> list = new ArrayList<Object>(); for ( int i = 0 ; i < 91 ; i++) { list.add(i); } long start = System.nanoTime(); dealBySubList(list, 10 ); dealByRemove(list, 10 ); long end = System.nanoTime(); System.out.println( "The elapsed time :" + (end-start)); } } |
按批次处理list数据 (list按条数取)的更多相关文章
- 表单生成器(Form Builder)之mongodb表单数据查询——返回分页数据和总条数
上一篇笔记将开始定义的存储结构处理了一下,将FormItems数组中的表单项都拿到mongodb document的最外层,和以前的关系型数据类似,之不过好多列都是动态的,不固定,不过这并没有什么影响 ...
- oracle 利用over 查询数据和总条数,一条sql搞定
select count(*) over()总条数 ,a.*from table a
- Spark Steaming消费kafka数据条数变少问题
对于基于Receiver 形式,我们可以通过配置 spark.streaming.receiver.maxRate 参数来限制每个 receiver 每秒最大可以接收的记录的数据:对于 Direct ...
- Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、
查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t; ...
- 实现java 中 list集合中有几十万条数据,每100条为一组取出
解决"java 中 list集合中有几十万条数据,每100条为一组取出来如何实现,求代码!!!"的问题. 具体解决方案如下: /** * 实现java 中 list集合中有几十万条 ...
- jquery通过ajax获取数据,控制显示的数据条数
效果图: 现在我们可以先看它的json数据,如图所示: 然后可以对应我们的代码进行理解. jquery通过ajax获取数据,并通过窗口大小控制显示的数据条数,以及可以根据 ...
- PROCEDURE_监测系统_数据备份存储过程—备份原始数据,每十分钟一条,取平均值
create or replace procedure proc_backup_originaldata(retCode out varchar2, -- 返回码 ...
- SQL 一列数据整合为一条数据
SQL 一列数据整合为一条数据: SELECT STUFF(( SELECT distinct ',' + 列名 FROM 表名 where [条件] FOR XML PATH('') ), 1 ...
- [lua, mysql] 将多条记录数据组合成一条sql插入语句(for mysql)
-- 演示将多条记录数据组合成一条sql插入语句(for mysql) function getTpl0(tname) -- 获取表各个字段 local t = { tpl_pack = {" ...
随机推荐
- Redis(七):Jedis简介和集群
Jedis简介 1.Jedis 是Redis 客户端工具jar2.使用非集群版示例代码 Jedis jedis = new Jedis("192.168.139.132", 637 ...
- 【HDU 2586】LCA模板
在一棵树上 求2个点的最短距离.那么首先利用LCA找到2个点的近期公共祖先 公式:ans = dis(x) + dis(y) - 2 * dis(lca(x,y)) 这里的dis(x)指的上x距离根节 ...
- netty内存泄漏
关于netty本身内存泄漏的资料,在此记录一下:https://blog.csdn.net/hannuotayouxi/article/details/78827499
- Composer fails to download http json files on "update", not a network issue, https fine
"repositories": [ { "packagist": false }, { "type": "composer&quo ...
- 基于jquery仿360网站图片选项卡切换代码
今天给大家分享一款基于jquery仿360网站图片选项卡切换代码.这款实例适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预 ...
- MapReduce编程实例6
前提准备: 1.hadoop安装运行正常.Hadoop安装配置请参考:Ubuntu下 Hadoop 1.2.1 配置安装 2.集成开发环境正常.集成开发环境配置请参考 :Ubuntu 搭建Hadoop ...
- session退出页面
简单的session退出页面,jsp: <%@ page language="java" contentType="text/html; charset=utf-8 ...
- Java单元测试学习
单元测试的好处 1. 让你写出更好的代码:职业高内聚.低耦合而且接口设计合理的代码才易于测试: 2. 让你在修改代码时更有信心. JUnit4 注解 @Test (expected = Excepti ...
- 回车替换Tab 并不会 提交表单 IE Chrome 通过
网上一堆可以回车替换tab的代码,可是基本都忽略谷歌浏览器的兼容性,找了3个小时 试了无数遍,终于总结出这一段代码,希望能帮到需要的同学,也给自己留个备忘 document.onkeyd ...
- KMP + 求最小循环节 --- HUST 1010 - The Minimum Length
The Minimum Length Problem's Link: http://acm.hust.edu.cn/problem/show/1010 Mean: 给你一个字符串,求这个字符串的最小循 ...