java List分批处理
java List分批处理,例如对List中的数据进行批量插入。
方法一:
/**
* ClassName:Test List分批处理
* @author Joe
* @version
* @since JDK 1.8
*/
public class Test { public static void main(String[] args) throws InterruptedException {
// 计数器
int count = 1; List<String> list = new ArrayList<String>();
// 填充List
for(int i = 0; i<10003; i ++){
list.add(i + "");
}
// 临时List
List<String> tempList = new ArrayList<String>(); for (String s : list) {
tempList.add(s);
// 分 1000条 执行 批量insert
if (count == 1000) {
// 执行 insert 操作
System.out.println("insert-1-" + tempList);
// 重新计数
count = 1;
// 清空list,重新塞数据
tempList.clear();
} else {
count++;
}
} // 扫尾
if (count > 0) {
// 执行 insert 操作
System.out.println("insert-2-" + tempList);
// 重新计数
count = 1;
// 清空list,重新塞数据
tempList.clear();
}
}
}
方法二:
/**
* ClassName:Test2 List分批处理
* @author 原文地址:http://blog.csdn.net/lxxc11/article/details/52817817
* @version
* @since JDK 1.8
*/
public class Test2 { public static void main(String[] args) {
// 1.总记录数
List<String> oldList = new ArrayList<String>();
for (int i = 0; i < 10003; i++) {
oldList.add(i + "");
} // 2.分页数据信息
int totalSize = oldList.size(); // 总记录数
int pageSize = 1000; // 每页N条
int totalPage = totalSize / pageSize; // 共N页 if (totalSize % pageSize != 0) {
totalPage += 1;
if (totalSize < pageSize) {
pageSize = oldList.size();
}
}
System.out.println("循环保存的次数:" + totalPage); // 循环多少次 // 临时List
List<String> temList = null;
for (int pageNum = 1; pageNum < totalPage + 1; pageNum++) {
int starNum = (pageNum - 1) * pageSize;
int endNum = pageNum * pageSize > totalSize ? (totalSize) : pageNum * pageSize;
System.out.println("起始:" + starNum + "-" + endNum);
temList = oldList.subList(starNum, endNum);
System.out.println("第" + pageNum + "批,执行insert:" + temList);
}
}
}
java List分批处理的更多相关文章
- 使用java多线程分批处理数据工具类
最近由于业务需要,数据量比较大,需要使用多线程来分批处理,提高处理效率和能力,于是就写了一个通用的多线程处理工具,只需要实现自己的业务逻辑就可以正常使用,现在记录一下 主要是针对大数据量list,将l ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- JAVA算法两道
算法(JAVA)----两道小小课后题 LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快 ...
- java.sql.SQLException: Prepared or callable statement has more than 2000 parameter markers及解决方案
1. 问题 最近在项目中修bug的时候,碰到这样一个错误: Caused by: java.sql.SQLException:Prepared or callable statement has mo ...
- 算法(JAVA)----两道小小课后题
LZ最近翻了翻JAVA版的数据结构与算法,无聊之下将书中的课后题一一给做了一遍,在此给出书中课后题的答案(非标准答案,是LZ的答案,猿友们可以贡献出自己更快的算法). 1.编写一个程序解决选择问题.令 ...
- 【Java工具方法】给集合按数量分组
有时候需要给集合(如List)按数量分组,比如全集太大时,需要分批处理:或效率有点低,分批并发处理.于是,写了个将List按数量分组的方法. package controller; import ja ...
- Java模拟数据量过大时批量处理数据的两种实现方法
方法一: 代码如下: import java.util.ArrayList; import java.util.List; /** * 模拟批量处理数据(一) * 当数据量过大过多导致超时等问题可以将 ...
- Java线程(1)
多线程快速入门 线程与进程区别 每个正在系统上运行的程序都是一个进程.每个进程包含一到多个线程.线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行.也可以把它理解为代码运行的上下文.所以 ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
随机推荐
- sparkR集群启动脚本的封装。
sparkR默认是以单机方式运行的.实现sparkR的集群启动,需要指定master地址,占用内存.CPU,及UI端口等,这对分析人员来说是比较麻烦的. 如何实现对其启动的封装,方便分析人员来使用: ...
- 安卓程序代写 网上程序代写[原]BluetoothServerSocket详解
一. BluetoorhServerSocket简介 1. 继承关系 public final class BluetoothServerSocket extends Object implement ...
- Axure RP Pro 7.0 注册码
用户名:aaa注册码:h624pifAqt7It5e8boKkML+Y4RjDX5xknP4k7QktJYQoxsvv7VUS7hBCv/2ef45P
- ecmall数据库表详解 二次开发必备
文章分类表ecm_acategory 字段 类型 Null 默认 注释 cate_id int(10) 否 自增ID号,分类ID号 cate_name varchar(100) 否 分类的名称 ...
- e810. 创建弹出菜单
final JPopupMenu menu = new JPopupMenu(); // Create and add a menu item JMenuItem item = new JMenuIt ...
- 用Visual C#创建Windows服务程序
一.Windows服务介绍: Windows服务以前被称作NT服务,是一些运行在Windows NT.Windows 2000和Windows XP等操作系统下用户环境以外的程序.在以前,编写Wind ...
- C# ?? 运算符是什么?
?? 运算符定义在将可空类型分配给非可空类型时返回的默认值. int? c = null; //若 c 为 null,则 d 为 -1,否则把 c 值赋予 dint d = c ?? -1;
- 使用appledoc 生成技术API文档具体解释
一. 首先安装 appledoc 第一步:使用终端命令进行下载安装 git clone git://github.com/tomaz/appledoc.git cd ./appledoc sudo s ...
- XML中二进制数据的处理方法
原文链接:http://www.west263.com/www/info/22308-1.htm 在xml中,所有的数据都是以文本的形式来显示,但是二进制数据不能直接以文本格式来表示,那xml又是怎么 ...
- MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server
From: http://www.jb51.net/article/56952.htm 这篇文章主要介绍了MySQL错误ERROR 2002 (HY000): Can't connect to loc ...