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引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
随机推荐
- E/MediaPlayer: start called in state 4, mPlayer(0xcc719a40)解决
在使用MediaPlayer播放音频时报出 E/MediaPlayer: start called in state 4, mPlayer(0xcc719a40)错误 贴出代码 mMediaPlaye ...
- 利用memcpy函数实现float到QByteArray的相互转化
一.为什么要实现float到QByteArry之间的相互转化 在总线通讯过程中(例如串口通讯),总线上传输的是字节数组变量,即ByteArray型的变量,在Qt中即为QbyteArray型变量.总线发 ...
- 转载:推荐给每个“数据分析师”看的PPT——关于开会的那点事
推荐给每个“数据分析师”看的PPT——关于开会的那点事 经常对开会“深恶痛绝”,大概的原因有两个,其一,开会之前的准备,各种指标.各种分析.各种PPT,其二,开会中的板凳.废话,尤其是走形式的会议,战 ...
- visual studio运行时库MT、MTd、MD、MDd 的区别
msdn上面的解释: MT:mutithread,多线程库,编译器会从运行时库里面选择多线程静态连接库来解释程序中的代码,即连接LIBCMT.lib库 MTd:mutithread+debug,多线程 ...
- C#-----------------------------回收机制中Destroy与null的作用
关于Object被Destroy之后,该Object的原引用==null的问题 标签: unityc#继承对象 2017-01-23 23:32 506人阅读 评论(0) 收藏 举报 分类: Uni ...
- (原)从mp4,flv文件中解析出h264和aac,送解码器解码失败
转载请注明出处:http://www.cnblogs.com/lihaiping/p/5285166.html 今天在做本地文件解码测试,发现从mp4,flv文件中读出来的帧数据,h264和aac帧直 ...
- (转)关于yuv 格式:planar和semi-planar格式
关于yuv 格式 YUV 格式通常有两大类:打包(packed)格式和平面(planar)格式.前者将 YUV 分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel);而 ...
- Oracle With As 查询
WITH AS WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是为了让SQL语句 ...
- 【ES】简单使用
import sys reload(sys) sys.setdefaultencoding('utf-8') from datetime import datetime from elasticsea ...
- Unity UGUI 的RectTransform参数的设置
1.改变RectTransform的top GetComponent<RectTransform>().offsetMax = new Vector2(GetComponent<Re ...