java List分批處理,例如對List中的數據進行批量插入。
方法一:
1 /** 2 * ClassName:Test List分批處理 3 * @author Joe 4 * @version 5 * @since JDK 1.8 6 */ 7 public class Test { 8 9 public static void main(String[] args) throws InterruptedException { 10 // 計數器 11 int count = 1; 12 13 List<String> list = new ArrayList<String>(); 14 // 填充List 15 for(int i = 0; i<10003; i ++){ 16 list.add(i + ""); 17 } 18 // 臨時List 19 List<String> tempList = new ArrayList<String>(); 20 21 for (String s : list) { 22 tempList.add(s); 23 // 分 1000條 執行 批量insert 24 if (count == 1000) { 25 // 執行 insert 操作 26 System.out.println("insert-1-" + tempList); 27 // 重新計數 28 count = 1; 29 // 清空list,重新塞數據 30 tempList.clear(); 31 } else { 32 count++; 33 } 34 } 35 36 // 掃尾 37 if (count > 0) { 38 // 執行 insert 操作 39 System.out.println("insert-2-" + tempList); 40 // 重新計數 41 count = 1; 42 // 清空list,重新塞數據 43 tempList.clear(); 44 } 45 } 46 }
方法二:
1 /** 2 * ClassName:Test2 List分批處理 3 * @author 原文地址:http://blog.csdn.net/lxxc11/article/details/52817817 4 * @version 5 * @since JDK 1.8 6 */ 7 public class Test2 { 8 9 public static void main(String[] args) { 10 // 1.總記錄數 11 List<String> oldList = new ArrayList<String>(); 12 for (int i = 0; i < 10003; i++) { 13 oldList.add(i + ""); 14 } 15 16 // 2.分頁數據信息 17 int totalSize = oldList.size(); // 總記錄數 18 int pageSize = 1000; // 每頁N條 19 int totalPage = totalSize / pageSize; // 共N頁 20 21 if (totalSize % pageSize != 0) { 22 totalPage += 1; 23 if (totalSize < pageSize) { 24 pageSize = oldList.size(); 25 } 26 } 27 System.out.println("循環保存的次數:" + totalPage); // 循環多少次 28 29 // 臨時List 30 List<String> temList = null; 31 for (int pageNum = 1; pageNum < totalPage + 1; pageNum++) { 32 int starNum = (pageNum - 1) * pageSize; 33 int endNum = pageNum * pageSize > totalSize ? (totalSize) : pageNum * pageSize; 34 System.out.println("起始:" + starNum + "-" + endNum); 35 temList = oldList.subList(starNum, endNum); 36 System.out.println("第" + pageNum + "批,執行insert:" + temList); 37 } 38 } 39 }
