list集合分批处理数据
作者:互联网
方法一
package com.nantian.winUtliTest.BaiWan;
import java.util.ArrayList;
import java.util.List;
/**
* 测试 百万数据 每次处理10w
* @ClassName: test
* @Description: TODO
* @author: 92649498
* @date: 2019年12月12日 下午4:14:00
* Class explain:
*/
public class test {
public static void main(String[] args) {
List<String> a = new ArrayList();//a的list 只是用来做计数
List<String> a1 = new ArrayList();//a的list 只是用来做计数
List b = new ArrayList();// 实际存储的数据
a1.add("b");
for (int i = 0; i < 100; i++) {
System.out.println("a1"+a.size());
a.add(i, a1.get(0)+i);
}
for (int i = 1; i < a.size() + 1; i++) {
b.add(a.get(i - 1));
if (i % 10 == 0) {//每次每次处理
System.out.println("每次处理100000W "+i + "-- 处理黑名单的数据" + b);
b.clear();
}
if (i == a.size()) {
System.out.println(i + "--" + b);
// 最后一批
b.clear();
}
}
}
}
方法二
package com.nantian.winUtliTest.BaiWan;
import java.util.ArrayList;
import java.util.List;
/**
* 批次处理 百万数据
* @ClassName: test2
* @Description: TODO
* @author: 92649498
* @date: 2019年12月14日 下午11:05:21
* Class explain:
*/
public class test2 {
public static void main(String[] args) {
List<Object> list = new ArrayList<Object>();
for(int i = 0;i<500;i++){
list.add(i);
}
test2.test1(list);
}
public static void test1(List<Object> dataList){
int pointDataLimit = 100; //每次处理多少?条
List<Object> newList = new ArrayList<Object>();
for (int i=0;i<dataList.size();i++){
//分批次处理
newList.add(dataList.get(i));
if(pointDataLimit == newList.size()||i == dataList.size()-1){
printList(newList);
newList.clear();
System.out.println("*");
System.out.println("====");
}
}
}
public static void printList(List<Object> dataList){
for(Object str : dataList){
System.out.print(str + "--");
}
}
}
方法三
package com.nantian.winUtliTest.BaiWan;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.log4j.Logger;
import com.nantian.common.ConnectionPool;
import com.nantian.service.getBlackListService;
public class test3 {
public static void main(String[] args) {
HashMap<String, String> returnMap =new HashMap<String, String>();
List<String> lines = new ArrayList<String>();//黑名单增量源数据
//2019年12月13日 改版黑名单名 每次处理 10W 如果不到 10w 直接处理
//只有文件总条数小于100W 才会写入 缓存 2019年12月9日
try {
lines = FileUtils.readLines(new File("D:\\WindowsETC\\ETC_Managent\\blackListFile\\ETCPMC-U-H-191214-06-11"), Charset.forName("GBK"));//将文件 写入缓存
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
// logger.info("[黑名单下载服务 :] 删除文件");
// Boolean delDirUtil2 = winZipUtil.delDirUtil(blackListFilePath, blackListFilePath1,
// blackListFilePath2);
// 筛选是增加还是删除
System.out.println("[黑名单下载服务 :] 开始处理数据一共=" + (lines.size() - 1) + "=" + lines.get(0));
//如果增量黑名单数据超过 10W 每次处理 10W
int pointDataLimit = 100000; //每次处理多少?条
List<String> newList = new ArrayList<String>();
for (int i=0;i<lines.size();i++){
//分批次处理
newList.add(lines.get(i));
if(pointDataLimit == newList.size()||i == lines.size()-1){
for (String string : newList) {
if (string.contains("D")) {
String replaceAll = string.replaceAll("D","");
rwFile(replaceAll+"--");
System.out.print(replaceAll+"--");
}
if (string.contains("A")) {
String replaceAll = string.replaceAll("A","");
rwFile2(replaceAll+"--");
System.out.print(replaceAll+"--");
}
}
newList.clear();
rwFile("*");
rwFile("====");
System.out.println("*");
System.out.println("====");
}
}
}
}
public static void rwFile(String string){
FileWriter fw = null;
try {
fw = new FileWriter("C:\\Users\\92649498\\Desktop\\1111.txt", true);//路径一定要用"\\"
fw.write(string);//这里向文件中输入结果123
fw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void rwFile2(String string){
FileWriter fw = null;
try {
fw = new FileWriter("C:\\Users\\92649498\\Desktop\\2222.txt", true);//路径一定要用"\\"
fw.write(string);//这里向文件中输入结果123
fw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fw != null) {
try {
fw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
标签:java,fw,分批,list,System,new,集合,import,List 来源: https://www.cnblogs.com/wzy-525/p/12059512.html