当前位置: 首页 > news >正文

大集合按照指定长度进行分割成多个小集合,用于批量多次处理数据

📚目录

    • 拆分案例
    • 拆分的核心代码

        通常我们对集合的更新或者保存都需要用集合来承载通过插入的效率,但是这个会遇到一个问题就是你不知道那天那个集合的数量可能就超了,虽然我们连接数据库进行批量提交会在配置上配置allowMultiQueries=true,但是太长了也一样会会报错,这样我们就只能分批查询或者分批插入,需要把大集合拆分成小集合数据,希望接下来的案例可以帮到您。

拆分案例

    //大集合分割成小集合@Testpublic void sliceListTest(){List<Order> orderList = new ArrayList<>();//模拟需要查询出来的数据进行批量处理for (int i = 0; i < 10500; i++) {Order order = new Order();order.setId(System.currentTimeMillis());order.setOrderNo(UUID.randomUUID().toString());orderList.add(order);}//返回要求的小集合数据内容List<List<Order>> lists = sliceList(1000, orderList);for (List<Order> list : lists) {//小集合的数据List<Order> orders = list;//按照自己的业务处理逻辑,我这边就打印长度System.out.println(orders.size());}}/*** 集合拆分* @param batchSize 小集合的容量* @param list 大集合* @param <T> 泛型* @return*/public static <T> List<List<T>> sliceList(int batchSize, List<T> list) {List<List<T>> batches = new ArrayList<>();for (int i = 0; i < list.size(); i += batchSize) {int end = Math.min(i + batchSize, list.size());List<T> batch = list.subList(i, end);batches.add(batch);}return batches;}

在这里插入图片描述

拆分的核心代码

核心代码 : 大集合分割成小集合,这里使用到泛型T,这样我们就可以把该方法提供成公共方法,由调用方决定把集合拆成多大。

    public static <T> List<List<T>> sliceList(int batchSize, List<T> list) {List<List<T>> batches = new ArrayList<>();for (int i = 0; i < list.size(); i += batchSize) {int end = Math.min(i + batchSize, list.size());List<T> batch = list.subList(i, end);batches.add(batch);}return batches;}

相关文章:

大集合按照指定长度进行分割成多个小集合,用于批量多次处理数据

&#x1f4da;目录 拆分案例拆分的核心代码 通常我们对集合的更新或者保存都需要用集合来承载通过插入的效率&#xff0c;但是这个会遇到一个问题就是你不知道那天那个集合的数量可能就超了&#xff0c;虽然我们连接数据库进行批量提交会在配置上配置allowMultiQueriestrue,但是…...

ELK日志收集系统集群实验(5.5.0版)

目录 前言 一、概述 二、组件介绍 1、elasticsearch 2、logstash 3、kibana 三、架构类型 四、ELK日志收集集群实验 1、实验拓扑 2、在node1和node2节点安装elasticsearch 3、启动elasticsearch服务 4、在node1安装elasticsearch-head插件 5、测试输入 6、node1服…...

基于java swing和mysql实现的电影票购票管理系统(源码+数据库+运行指导视频)

一、项目简介 本项目是一套基于java swing和mysql实现的电影票购票管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都…...

数据结构--6.0最短路径

目录 一、迪杰斯特拉算法&#xff08;Dijkstra&#xff09; 二、弗洛伊德算法&#xff08;Floyd&#xff09; 在网图和非网图中&#xff0c;最短路径的含义是不同的。 ——网图是两顶点经过的边上的权值之和最少的路径。 …...

Docker进阶:mysql 主从复制、redis集群3主3从【扩缩容案例】

Docker进阶&#xff1a;mysql 主从复制、redis集群3主3从【扩缩容案例】 一、Docker常规软件安装1.1 docker 安装 tomcat&#xff08;默认最新版&#xff09;1.2 docker 指定安装 tomcat8.01.3 docker 安装 mysql 5.7&#xff08;数据卷配置&#xff09;1.4 演示--删除mysql容器…...

遗传算法决策变量降维的matlab实现

1.案例背景 1.1遗传算法概述 遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。它最初由美国Michigan大学的J. Holland教授提出,1967年, Holland 教授的学生 Bagley在其博士论文中首次提出了“遗传…...

基于Open3D和PyTorch3D读取三维数据格式OBJ

本节将讨论另一种广泛使用的3D数据文件格式,即OBJ文件格式。OBJ文件格式最初由Wavefront Technologies Inc.开发。与PLY文件格式类似,OBJ格式也有ASCII版本和二进制版本。二进制版本是专有的且未记录文档。本章主要讨论ASCII版本。 与之前类似,将通过示例来学习文件格式。第…...

带纽扣电池产品出口澳洲安全标准,纽扣电池IEC 60086认证

澳大利亚政府公布了《消费品&#xff08;纽扣/硬币电池&#xff09;安全标准》和《消费品&#xff08;纽扣/硬币电池&#xff09;信息标准》。届时出口纽扣/硬币电池以及含有纽扣/硬币电池产品到澳大利亚的供应商&#xff0c;必须遵守这些标准中的要求。 一、 安全标准及信息标…...

spring高级源码50讲-37-42(springBoot)

Boot 37) Boot 骨架项目 如果是 linux 环境&#xff0c;用以下命令即可获取 spring boot 的骨架 pom.xml curl -G https://start.spring.io/pom.xml -d dependenciesweb,mysql,mybatis -o pom.xml也可以使用 Postman 等工具实现 若想获取更多用法&#xff0c;请参考 curl …...

腾讯云、阿里云、华为云便宜云服务器活动整理汇总

云服务器的选择是一个很重要的事情&#xff0c;避免产生不必要的麻烦&#xff0c;建议选择互联网大厂提供的云计算服务&#xff0c;腾讯云、阿里云、华为云就是一个很不错的选择&#xff0c;云服务器稳定性、安全性以及售后各方面都更受用户认可&#xff0c;下面小编给大家整理…...

L1-055 谁是赢家(Python实现) 测试点全过

前言&#xff1a; {\color{Blue}前言&#xff1a;} 前言&#xff1a; 本系列题使用的是&#xff0c;“PTA中的团体程序设计天梯赛——练习集”的题库&#xff0c;难度有L1、L2、L3三个等级&#xff0c;分别对应团体程序设计天梯赛的三个难度。更新取决于题目的难度&#xff0c;…...

开发一个npm包

1 注册一个npm账号 npm https://www.npmjs.com/ 2 初始化一个npm 项目 npm init -y3编写一段代码 function fn(){return 12 }exports.hellofn;4发布到全局node_module npm install . -g5测试代码 创建一个text文件 npm link heath_apisnode index.js6登录(我默认的 https…...

介绍几种使用工具

FileWatch&#xff0c;观测文件变化&#xff0c;源码地址&#xff1a;https://github.com/ThomasMonkman/filewatch nlohmann::json&#xff0c;json封装解析&#xff0c;源码地址&#xff1a;https://github.com/nlohmann/json optionparser&#xff0c;解析选项&#xff0c;源…...

Vue:关于声明式导航中的 跳转、高亮、以及两个类名的定制

声明式导航-导航链接 文章目录 声明式导航-导航链接router-link的两大特点&#xff08;能跳转、能高亮&#xff09;声明式导航-两个类名定制两个高亮类名 实现导航高亮&#xff0c;实现方式其实&#xff0c;css&#xff0c;JavaScript , Vue ,都可以实现。其实关于路由导航&…...

Sharding-JDBC分库分表-自动配置与分片规则加载原理-3

Sharding JDBC自动配置的原理 与所有starter一样&#xff0c;shardingsphere-jdbc-core-spring-boot-starter也是通过SPI自动配置的原理实现分库分表配置加载&#xff0c;spring.factories文件中的自动配置类shardingsphere-jdbc-core-spring-boot-starter功不可没&#xff0c…...

E8267D 是德科技矢量信号发生器

描述 最先进的微波信号发生器 安捷伦E8267D PSG矢量信号发生器是业界首款集成式微波矢量信号发生器&#xff0c;I/Q调制最高可达44 GHz&#xff0c;典型输出功率为23 dBm&#xff0c;最高可达20 GHz&#xff0c;对于10 GHz信号&#xff0c;10 kHz偏移时的相位噪声为-120 dBc/…...

Git git fetch 和 git pull 区别

git pull和git fetch的作用都是用于从远程仓库获取最新代码&#xff0c;但它们之间有一些区别。 git pull会自动执行两个操作&#xff1a;git fetch和git merge。它从远程仓库获取最新代码&#xff0c;并将其合并到当前分支中。 示例&#xff1a;运行git pull origin master会从…...

软件UI工程师工作的岗位职责(合集)

软件UI工程师工作的岗位职责1 职责&#xff1a; 1.负责产品的UI视觉设计(手机软件界面 网站界面 图标设计产品广告及 企业文化的创意设计等); 2.负责公司各种客户端软件客户端的UE/UI界面及相关图标制作; 3.设定产品界面的整体视觉风格; 4.参与产品规划构思和创意过程&…...

Mac系统Anaconda环境配置Python的json库

本文介绍在Mac电脑的Anaconda环境中&#xff0c;配置Python语言中&#xff0c;用以编码、解码、处理JSON数据的json库的方法&#xff1b;在Windows电脑中配置json库的方法也是类似的&#xff0c;大家可以一并参考。 JSON&#xff08;JavaScript Object Notation&#xff09;是一…...

Python数据分析与数据挖掘:解析数据的力量

引言&#xff1a; 随着大数据时代的到来&#xff0c;数据分析和数据挖掘已经成为许多行业中不可或缺的一部分。在这个信息爆炸的时代&#xff0c;如何从大量的数据中提取有价值的信息&#xff0c;成为了企业和个人追求的目标。而Python作为一种强大的编程语言&#xff0c;提供…...

深入解析RS485接口:从硬件设计到工业应用

1. RS485接口基础解析 第一次接触RS485时&#xff0c;我也被它复杂的电气特性搞得一头雾水。直到在工厂里亲眼看到它如何稳定地穿过嘈杂的电机区域传输数据&#xff0c;才真正理解这个老牌工业接口的魅力。RS485本质上是一种差分信号传输标准&#xff0c;采用双绞线进行平衡传…...

TextInput Effects部署与测试:确保跨平台兼容性的完整流程

TextInput Effects部署与测试&#xff1a;确保跨平台兼容性的完整流程 【免费下载链接】react-native-textinput-effects Text inputs with custom label and icon animations for iOS and android. Built with react native and inspired by Codrops. 项目地址: https://git…...

解决Legado书源调试难题:从问题诊断到环境优化的完整指南

解决Legado书源调试难题&#xff1a;从问题诊断到环境优化的完整指南 【免费下载链接】legado Legado 3.0 Book Reader with powerful controls & full functions❤️阅读3.0, 阅读是一款可以自定义来源阅读网络内容的工具&#xff0c;为广大网络文学爱好者提供一种方便、快…...

LumiPixel Canvas Quest集成Vue.js:打造动态人像画廊管理后台

LumiPixel Canvas Quest集成Vue.js&#xff1a;打造动态人像画廊管理后台 1. 项目背景与需求分析 在数字内容创作领域&#xff0c;AI生成人像正成为设计师和内容创作者的重要工具。传统人工绘制方式耗时费力&#xff0c;而直接使用AI生成工具又缺乏系统化管理。我们团队最近用…...

从用户视角优化:让QGC地面站的盘旋半径显示更直观的3个实用技巧

从用户视角优化&#xff1a;让QGC地面站的盘旋半径显示更直观的3个实用技巧 在无人机飞行任务规划中&#xff0c;盘旋半径的准确显示直接关系到飞行安全和任务执行效率。QGroundControl&#xff08;QGC&#xff09;作为业界领先的开源地面站软件&#xff0c;其功能强大但某些细…...

视频高清低延时直播/音视频点播/云点播/云直播EasyDSS在校园教育/K12教育等各场景中的应用介绍

在线教育的核心竞争力&#xff0c;归根结底在于教学体验的优劣&#xff0c;而视频技术作为线上教学的核心载体&#xff0c;直接决定了教学体验的上限。随着在线教育行业的快速迭代&#xff0c;学员对线上课堂的要求愈发严苛&#xff1a;不仅需要高清流畅、稳定无卡顿的音视频传…...

OpenClaw语音控制之多麦克风阵列与声源定位技术的应用

7.1 麦克风阵列基础 7.1.1 阵列定义与原理 麦克风阵列是由多个麦克风按照特定几何结构排列组成的声学传感器系统。与单麦克风相比,阵列系统通过空间采样能够实现声场的时空联合处理,从而获得方向性选择能力。这种空间处理能力是语音交互系统在复杂声学环境中保持高性能的关…...

告别系统管理困境:WinUtil让Windows优化效率提升300%

告别系统管理困境&#xff1a;WinUtil让Windows优化效率提升300% 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 作为Windows用户&#xff0c…...

r5:天气预测

- **&#x1f368; 本文为[&#x1f517;365天深度学习训练营](https://mp.weixin.qq.com/s/o-DaK6aQQLkJ8uE4YX1p3Q) 中的学习记录博客** - **&#x1f356; 原作者&#xff1a;[K同学啊](https://mtyjkh.blog.csdn.net/)** 文章目录 概要整体架构流程代码运行技术名词解释小…...

Python 如何反向 `enumerate` 遍历枚举

在 Python 中&#xff0c;enumerate() 是一个常用的内置函数&#xff0c;用于在遍历可迭代对象&#xff08;如列表、元组、字符串等&#xff09;时同时获取索引和值。但默认情况下&#xff0c;enumerate() 是从前往后遍历的。那么&#xff0c;**如何反向 enumerate 遍历&#x…...