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

List集合拆分为多个List

list 拆分

  • 目录
    • 概述
      • 需求:
    • 设计思路
    • 实现思路分析
      • 1.list 拆分是
      • 2.用stream的parallel实现list的分批处理
      • 3.使用stream的parallel实现list的分批处理
  • 参考资料和推荐阅读

Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.

目录

在这里插入图片描述

概述

list 拆分是一个常见的需求。

需求:

list 拆分是一个常见的需求。

设计思路

实现思路分析

1.list 拆分是

        // 创建模拟listList<Integer> dataList = new ArrayList<>();for (int i = 1; i <= 22; i++) {dataList.add(i);}// 每批次数据记录数量int partialLimit = 10;//判断是否有必要分批if (partialLimit < dataList.size()) {//当前数据按限制条数可分为多少批次int part = dataList.size()/partialLimit;List<Integer> partList;for (int i = 0; i < part; i++) {// 截取批次长度的listpartList = dataList.subList(0, partialLimit);// 分批业务逻辑处理- 打印替代System.out.println("分割出口的数据: "+partList);// 去除已经处理的部分 (Arrays.asList()方式生成的数据不能进行此修改操作,会报错)partList.clear();System.out.println("剩余数据: "+dataList);}// 获取最后一次截取后的剩余列表数据if (!dataList.isEmpty()) {// 业务逻辑数据处理, - 打印替代System.out.println(dataList);}} else {System.out.println("数据不需要分批,直接进行业务逻辑处理!");}

2.用stream的parallel实现list的分批处理

        // 按每5个一组分割int partialLimit = 5;List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7,8,9,10);// 获取需要分割的次数,注意不能直接除以批次数量int limit = (list.size()+partialLimit -1)/partialLimit;// 使用流遍历操作List<List<Integer>> arrayList = new ArrayList<>();Stream.iterate(0, n -> n + 1).limit(limit).forEach(i -> {arrayList.add(list.stream().skip((long) i * partialLimit).limit(partialLimit).collect(Collectors.toList()));});System.out.println(arrayList);

3.使用stream的parallel实现list的分批处理

        // 按每5个一组分割int partialLimit = 5;List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7,8,9,10);// 获取需要分割的次数,注意不能直接除以批次数量,会丢失数据;int limit = (list.size()+partialLimit -1)/partialLimit;// 获取分割后的集合List<List<Integer>> splitList = Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> list.stream().skip((long) a * partialLimit).limit(partialLimit).parallel().collect(Collectors.toList())).collect(Collectors.toList());// 执行具体业务方法。打印代替System.out.println(splitList);

参考资料和推荐阅读

参考资料
官方文档
开源社区
博客文章
书籍推荐
1.https://www.cnblogs.com/ChenQ2/p/16636306.html
2.https://www.cnblogs.com/ChenQ2/p/16636306.html

欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~

相关文章:

List集合拆分为多个List

list 拆分 目录概述需求&#xff1a; 设计思路实现思路分析1.list 拆分是2.用stream的parallel实现list的分批处理3.使用stream的parallel实现list的分批处理 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full bus…...

Hadoop3教程(十三):MapReduce中的分区

文章目录 &#xff08;96&#xff09; 默认HashPartitioner分区&#xff08;97&#xff09; 自定义分区案例&#xff08;98&#xff09;分区数与Reduce个数的总结参考文献 &#xff08;96&#xff09; 默认HashPartitioner分区 分区&#xff0c;是Shuffle里核心的一环&#xf…...

笔记本Win10系统一键重装操作方法

笔记本电脑已经成为大家日常生活和工作中必不可少的工具之一&#xff0c;如果笔记本电脑系统出现问题了&#xff0c;那么就会影响到大家的正常操作。这时候就可以考虑给笔记本电脑重装系统了。接下来小编给大家介绍关于一键重装Win10笔记本电脑系统的详细步骤方法。 推荐下载 系…...

FilterRegistrationBean能不能排除指定url

文章目录 什么是FilterRegistrationBean举个栗子但是如果我想要排除某些uri方法总结FilterRegistrationBean只能设置指定的url进行过滤,而不能指定排除uri,只能使用OncePerRequestFilter的shouldNotFilter方法,排除uri 什么是FilterRegistrationBean FilterRegistrationBean是…...

【LeetCode】36. 有效的数独

1 问题 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&…...

华为---PPP协议简介及示例配置

PPP协议简介 PPP是Point-to-Point Protocol的简称&#xff0c;中文翻译为点到点协议。与以太网协议一样,PPP也是一个数据链路层协议。以太网协议定义了以太帧的格式&#xff0c;PPP协议也定义了自己的帧格式&#xff0c;这种格式的帧称为PPP帧。 利用PPP协议建立的二层网络称为…...

asp.net老年大学信息VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机毕业设计

一、源码特点 asp.net老年大学信息管理系统是一套完善的web设计管理系统&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为vs2010&#xff0c;数据库为sqlserver2008&#xff0c;使用c# 语言开发 asp.net老年大学信息管理系统…...

模型量化笔记--对称量化和非对称量化

1–量化映射 量化映射的通用公式为: r S ( q − Z ) r S(q - Z) rS(q−Z) 其中r表示量化前数据的真实值&#xff0c;S表示缩放因子&#xff0c;q表示量化后的数值&#xff0c;Z表示零点 2–非对称量化 非对称量化需要一个偏移量Z来完成零点的映射&#xff0c;即量化前的零…...

PA2019 Terytoria

洛谷P5987 [PA2019] Terytoria 题目大意 在一个平面直角坐标系上&#xff0c;有一个长度为 X X X&#xff0c;宽度为 Y Y Y的地图&#xff0c;这个地图的左边界和右边界是连通的&#xff0c;下边界和上边界也是连通的。 在地图中&#xff0c;有 X Y X\times Y XY个格子以及…...

内容分发网络CDN分布式部署真的可以加速吗?原理是什么?

Cdn快不快&#xff1f;她为什么会快&#xff1f;同样的带宽为什么她会快&#xff1f;原理究竟是什么&#xff0c;同学们本着普及知识的想法&#xff0c;我了解的不是很深入&#xff0c;适合小白来看我的帖子&#xff0c;如果您是大佬还请您指正错误的地方&#xff0c;先谢谢大佬…...

微服务docker部署实战

docker基础和进阶(*已掌握的可以跳过 *) 基础 docker基础 进阶 docker进阶 准备工作 提前准备好mysql和redis的配置&#xff0c;如下 在/zzq/mysql/conf目录下配置mysql配置文件my.cnf [client] #设置客户端字符集 default_character_setutf8 [mysqld] #开启定时任务 event_s…...

js实现拖拽功能

基于onMouseDown 、onMouseMove 、onMouseUp 使用 mousedown、mousemove 和 mouseup 事件来实现拖拽的基本思路是&#xff1a; 在 mousedown 事件中&#xff0c;开始追踪拖拽操作并记录鼠标按下的位置。 在 mousemove 事件中&#xff0c;根据鼠标的移动&#xff0c;更新被拖拽…...

数据库主从切换过程中Druid没法获取连接错误

背景&#xff1a; 今天dba在进行DB的主从切换&#xff0c;导致应用一直报错&#xff0c;获取不到DB连接&#xff0c;druid的错误信息如下&#xff1a; Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutExc…...

【iOS】Mac M1安装iPhone及iPad的app时设置问题

【iOS】Mac M1安装iPhone及iPad的app时设置问题 简介一&#xff0c;设置问题二&#xff0c;适配问题 简介 由于 苹果M1芯片的Mac可用安装iPhone以及iPad应用&#xff0c;因为开发者并没有适配Mac&#xff0c;因此产生了很多奇怪问题&#xff0c;这里总结归纳Mac M1安装iPhone和…...

Springboot 启动报错@spring.active@解析错误

Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character that cannot start any token. (Do not use for indentation)in reader, line 10, column 13:active: spring.active^查看是否勾选...

【算法挨揍日记】day15——560. 和为 K 的子数组、974. 和可被 K 整除的子数组

560. 和为 K 的子数组 560. 和为 K 的子数组 题目描述&#xff1a; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的连续子数组的个数 。 子数组是数组中元素的连续非空序列。 解题思路&#xff1a; 我们可以很容易想到暴力解法&#xf…...

数字时代的探索与革新:Socks5代理的引领作用

在当今快速发展的数字时代&#xff0c;技术创新推动着社会的变革与进步。Socks5代理作为一项重要的网络技术&#xff0c;正引领着跨界电商、爬虫数据分析、企业全球化和游戏体验优化等领域的发展。本文将深入探讨Socks5代理技术在这些领域中的引领作用&#xff0c;以及它如何塑…...

算法-堆/归并排序-排序链表

算法-堆/归并排序-排序链表 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/sort-list/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 优先级队列构建大顶堆 2.1 思路 优先级队列构建小顶堆链表所有元素放入小顶堆依次取出堆顶…...

word 如何编写4x4矩阵

百度上给的教程&#xff0c;打印出来没有对齐 https://jingyan.baidu.com/article/6b182309995f8dba58e159fc.html 百度上的方式试了一下&#xff0c;不会对齐。导致公式看起来很奇怪。 下面方式会自动对齐 摸索了一下发现可以用下面这种方式编写 4x4 矩阵。先创建一个 3x3…...

INTELlij IDEA编辑VUE项目

菜单中选择setting–>Plugins 或者快捷键 ctrlalts 搜索vue&#xff0c;但有些情况会搜索不出来&#xff0c;先说搜索到的情况 如下图所示&#xff1a; 如果没有vue.js则说明过去已经安装了。 搜索到了后点击Install安装即可&#xff0c; 但即使搜索成功了&#xff0c;也不…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

回溯算法学习

一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...