list集合分批處理數據


方法一

package com.****.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.****.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.****.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.****.common.ConnectionPool;
import com.****.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();
}
}
}
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM