將集合拆分成若干個batch,并將batch存于新的集合

在使用saveAll()等方法時,為了防止集合元素過大,使用splitList將原集合,分割成若干個小集合

import java.util.ArrayList;
import java.util.List;public class ListUtils {/*** 將集合拆分成若干個batch,并將batch存于新的集合** @param list 目標集合* @param size batch大小*             List m: [a, b, c, d, e, f, g]*             -> splitList(m, 3)*             -> [[a, b, c], [d, e, f], [g]]* @return List<Batch>*/public static <T> List<List<T>> splitList(List<T> list, int size) {//集合為空時,返回nullif (list == null){return null;}//分割后的集合套集合List<List<T>> l1 = new ArrayList<>();//如果分割size>=集合size,那就沒必要分割if (list.size() <= size){l1.add(list);} else {//集合sizeint s = list.size();//x=新的集合套集合的sizeint x = s / size;//y=新的集合套集合最后一個子集合的sizeint y = s % size;if (y != 0){x = x + 1;}int index = 0;for (int i = 0; i < x; i++) {List<T> l2 = new ArrayList<>();for (int j = 0; j < list.size(); j++) {//按原集合給subList裝元素,l2.add(list.get(index));index++;//當達到sublist個數size裝滿時,跳出循環if (l2.size() == size) {l1.add(l2);break;//最后一個subList時} else if (x == l1.size() + 1 && y == l2.size()) {l1.add(l2);break;}}}}return l1;}
}

數據庫批處理操作

if (bigList.size() > 0) {for (List<CustomTableBean> subList : ListUtils.splitList(bigList, 100)) {int rows = customMapper.insertAll(subList);log.info("insert data size is " + rows);try {Thread.sleep(50);} catch (InterruptedException e) {log.error(e.printStackTrace(););}}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919605.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919605.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919605.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java主流框架全解析:從企業級開發到云原生

Java作為一門歷史悠久且應用廣泛的編程語言&#xff0c;其強大的生態系統離不開各種優秀的框架支持。無論是傳統的企業級應用開發&#xff0c;還是現代的微服務、云原生架構&#xff0c;Java都提供了豐富的框架選擇。本文將全面解析當前主流的Java框架&#xff0c;涵蓋Web開發、…

機器學習——網格搜索(GridSearchCV)超參數優化

網格搜索&#xff08;Grid Search&#xff09;詳細教學1. 什么是網格搜索&#xff1f;在機器學習模型中&#xff0c;算法的**超參數&#xff08;Hyperparameters&#xff09;**對模型的表現起著決定性作用。比如&#xff1a;KNN 的鄰居數量 n_neighborsSVM 的懲罰系數 C 和核函…

【LeetCode】18. 四數之和

文章目錄18. 四數之和題目描述示例 1&#xff1a;示例 2&#xff1a;提示&#xff1a;解題思路算法一&#xff1a;排序 雙指針&#xff08;推薦&#xff09;算法二&#xff1a;通用 kSum&#xff08;含 2Sum 雙指針&#xff09;復雜度關鍵細節代碼實現要點完整題解代碼18. 四數…

Go語言入門(10)-數組

訪問數組元素&#xff1a;數組中的每個元素都可以通過“[]”和一個從0開始的索引進行訪問數組的長度可由內置函數len來確定。在聲明數組時&#xff0c;未被賦值元素的值是對應類型的零值。下面看一個例子package mainfunc main(){var planets [8]stringplanets[0] "Mercu…

為什么經過IPSec隧道后HTTPS會訪問不通?一次隧道環境下的實戰分析

在運維圈子里&#xff0c;大家可能都遇到過這種奇怪的問題&#xff1a;瀏覽器能打開 HTTP 網站&#xff0c;但一換成 HTTPS&#xff0c;頁面就死活打不開。前段時間&#xff0c;我們就碰到這么一個典型案例。故障現象某公司系統在 VPN 隧道里訪問 HTTPS 服務&#xff0c;結果就…

【Linux系統】進程信號:信號的產生和保存

上篇文章我們介紹了Syetem V IPC的消息隊列和信號量&#xff0c;那么信號量和我們下面要介紹的信號有什么關系嗎&#xff1f;其實沒有關系&#xff0c;就相當于我們日常生活中常說的老婆和老婆餅&#xff0c;二者并沒有關系1. 認識信號1.1 生活角度的信號解釋&#xff08;快遞比…

WEB服務器(靜態/動態網站搭建)

簡介 名詞:HTML(超文本標記語言),網站(多個網頁組成一臺網站),主頁,網頁,URL(統一資源定位符) 網站架構:LAMP(linux(系統)+apache(服務器程序)+mysql(數據庫管理軟件)+php(中間軟件)) 靜態站點 Apache基礎 Apache官網:www.apache.org 軟件包名稱:…

開發避坑指南(29):微信昵稱特殊字符存儲異常修復方案

異常信息 Cause: java.sql.SQLException: Incorrect string value: \xF0\x9F\x8D\x8B\xE5\xBB... for column nick_name at row 1異常背景 抽獎大轉盤&#xff0c;抽獎后需要保存用戶抽獎記錄&#xff0c;用戶再次進入游戲時根據抽獎記錄判斷剩余抽獎機會。保存抽獎記錄時需要…

leetcode-python-242有效的字母異位詞

題目&#xff1a; 給定兩個字符串 s 和 t &#xff0c;編寫一個函數來判斷 t 是否是 s 的 字母異位詞。 示例 1: 輸入: s “anagram”, t “nagaram” 輸出: true 示例 2: 輸入: s “rat”, t “car” 輸出: false 提示: 1 < s.length, t.length < 5 * 104 s 和 t 僅…

【ARM】Keil MDK如何指定單文件的優化等級

1、 文檔目標解決在MDK中如何對于單個源文件去設置優化等級。2、 問題場景在正常的項目開發中&#xff0c;我們通常都是針對整個工程去做優化&#xff0c;相當于整個工程都是使用一個編譯器優化等級去進行的工程構建。那么在一些特定的情況下&#xff0c;工程師需要保證我的部分…

零基礎學Java第二十二講---異常(2)

續接上一講 目錄 一、異常的處理&#xff08;續&#xff09; 1、異常的捕獲-try-catch捕獲并處理異常 1.1關于異常的處理方式 2、finally 3、異常的處理流程 二、自定義異常類 1、實現自定義異常類 一、異常的處理&#xff08;續&#xff09; 1、異常的捕獲-try-catch捕…

自建開發工具IDE(一)之拖找排版—仙盟創夢IDE

自建拖拽布局排版在 IDE 中的優勢及初學者開發指南在軟件開發領域&#xff0c;用戶界面&#xff08;UI&#xff09;的設計至關重要。自建拖拽布局排版功能為集成開發環境&#xff08;IDE&#xff09;帶來了諸多便利&#xff0c;尤其對于初學者而言&#xff0c;是踏入開發領域的…

GitHub Copilot - GitHub 推出的AI編程助手

本文轉載自&#xff1a;GitHub Copilot - GitHub 推出的AI編程助手 - Hello123工具導航。 ** 一、GitHub Copilot 核心定位 GitHub Copilot 是由 GitHub 與 OpenAI 聯合開發的 AI 編程助手&#xff0c;基于先進大語言模型實現代碼實時補全、錯誤檢測及文檔生成&#xff0c;顯…

基于截止至 2025 年 6 月 4 日,在 App Store 上進行交易的設備數據統計,iOS/iPadOS 各版本在所有設備中所占比例詳情

iOS 和 iPadOS 使用情況 基于截止至 2025 年 6 月 4 日&#xff0c;在 App Store 上進行交易的設備數據統計。 iPhone 在過去四年推出的設備中&#xff0c;iOS 18 的普及率達 88。 88% iOS 188% iOS 174% 較早版本 所有的設備中&#xff0c;iOS 18 的普及率達 82。 82% iOS 189…

云計算-k8s實戰指南:從 ServiceMesh 服務網格、流量管理、limitrange管理、親和性、環境變量到RBAC管理全流程

介紹 本文是一份 Kubernetes 與 ServiceMesh 實戰操作指南,涵蓋多個核心功能配置場景。從 Bookinfo 應用部署入手,詳細演示了通過 Istio 創建 Ingress Gateway 實現外部訪問,以及基于用戶身份、請求路徑的服務網格路由規則配置,同時為應用微服務設置了默認目標規則。 還包…

Vue 3項目中的路由管理和狀態管理系統

核心概念理解 1. 整體架構關系 這兩個文件構成了Vue應用的導航系統和狀態管理系統&#xff1a; Router&#xff08;路由&#xff09;&#xff1a;控制頁面跳轉和URL變化Store&#xff08;狀態&#xff09;&#xff1a;管理全局數據和用戶狀態兩者協同工作實現權限控制 2. 數據流…

Linux Capability 解析

文章目錄1. 權限模型演進背景2. Capability核心原理2.1 能力單元分類2.2 進程三集合2.3 文件系統屬性3. 完整能力單元表4. 高級應用場景4.1 能力邊界控制4.2 編程控制4.3 容器安全5. 安全實踐建議6. 潛在風險提示 1. 權限模型演進背景 在傳統UNIX權限模型中&#xff0c;采用二進…

vue 監聽 sessionStorage 值的變化

<template><div class"specific-storage-watcher"><h3>僅監聽 userId 變化</h3><p>當前 userId: {{ currentUserId }}</p><p v-if"changeRecord">最近變化: {{ changeRecord }}</p><button click"…

IDEA:控制臺中文亂碼

目錄一、設置字符編碼為 UTF-8一、設置字符編碼為 UTF-8 點擊菜單 File -> settings -> Eitor -> File Encodings , 將字符全局編碼、項目編碼、配置文件編碼統一設置為UTF-8, 然后點擊 Apply 應用設置&#xff0c;點擊 OK 關閉對話框:

[Sql Server]特殊數值計算

任務一&#xff1a;求下方的Num列的中值:參考代碼:use Test go SELECT DISTINCTPERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY Num) over()AS MedianSalary FROM MedianTest;任務二: 下方表中,每個選手有多個評委打分&#xff0c;求每個選手的評委打分中值。參考代碼:use Tes…