当前位置: 首页 > 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;也不…...

[STM32U3] 【STM32U385RG 测评】02+调试串口1输出字符串

一&#xff1a;:STM32U385 串口知识分享 通用同步/异步收发器(USART) 这些设备有两个嵌入式通用同步接收器发送器(USART1和USART3)以及两个通用异步接收器发送器(UART4和UART5) 该USART提供了一个灵活的手段来执行全双工数据交换与外部设备需要一个行业标准的NRZ异步串行数据格…...

Cadence ADE保姆级教程:手把手教你用S参数文件提取变压器QLk指标(附完整公式)

Cadence ADE实战指南&#xff1a;从S参数文件到变压器QLk指标的全流程解析 在射频集成电路设计中&#xff0c;变压器作为关键无源器件&#xff0c;其性能直接影响整个系统的效率与稳定性。QLk指标&#xff08;品质因数Q、电感值L和耦合系数k&#xff09;的准确提取&#xff0c;…...

瑞芯微RK3588核心板规格书,详细参数配置,定位ARM高端AIOT智能模组,板对板连接器320Pin 间距0.5 B to B连接器

触觉智能研发的瑞芯微RK3588核心板&#xff0c;板对板连接器320Pin 间距0.5 B to B连接器&#xff0c;型号简写SOM3588-V1&#xff0c;在CSDN平台留下规格书方便大家查看。1. 产品概述1.1 IDO-SOM3588-V1适用范围IDO-SOM3588-V1核心板适用于工业主机&#xff0c;边缘计算网关、…...

BetterDiscord Installer完全指南:如何一键安装和优化Discord插件

BetterDiscord Installer完全指南&#xff1a;如何一键安装和优化Discord插件 【免费下载链接】Installer A simple standalone program which automates the installation, removal and maintenance of BetterDiscord. 项目地址: https://gitcode.com/gh_mirrors/ins/Instal…...

书匠策AI降重降AIGC实测|官网www.shujiangce.com |微信公众号搜一搜 书匠策AI

&#x1f9ea; 一个实验室级别的"论文手术台" 各位正在跟毕业论文死磕的朋友&#xff0c;我今天不讲方法论&#xff0c;不拆写作技巧&#xff0c;我要给你们开一间"论文急诊室"。 你有没有经历过这种绝望&#xff1a;辛辛苦苦写完一万字&#xff0c;查重…...

保姆级教程:用Qt Designer和stackedWidget快速搭建一个多页面配置工具(Windows/Linux通用)

保姆级教程&#xff1a;用Qt Designer和stackedWidget快速搭建多页面配置工具 每次打开系统设置或安装新软件时&#xff0c;那些整洁的多页面配置界面总让人眼前一亮。作为开发者&#xff0c;你是否想过自己也能轻松打造这样的界面&#xff1f;今天我们就用Qt的stackedWidget控…...

PIC24F Curiosity开发板实战:从MCC配置到低功耗设计

1. 项目概述与核心价值最近在做一个需要兼顾低功耗和实时控制的小型嵌入式项目&#xff0c;选型时又一次把目光投向了Microchip的PIC24F系列MCU。说实话&#xff0c;对于很多从8位机过渡过来的工程师&#xff0c;或者在校学生、创客爱好者来说&#xff0c;直接上手一款16位单片…...

毕业答辩结束了,但我后悔没早点知道这件事

毕业答辩是学子学术生涯的收官之战&#xff0c;而答辩PPT则是学术成果的“可视化名片”&#xff0c;其逻辑清晰度、重点突出度与专业呈现力&#xff0c;直接影响答辩的最终走向。对多数学子而言&#xff0c;论文定稿后&#xff0c;PPT制作往往成为新的焦虑源泉&#xff1a;要么…...

靠谱的远程手机控制软件 远程控制手机推荐用无界趣连2.0

靠谱的远程手机控制软件&#xff0c;能帮我们打破设备空间限制&#xff0c;日常办公、远程协助或游戏串流都能高效搞定。在众多远程手机控制软件里&#xff0c;无界趣连2.0凭借扎实的性能与无套路的体验&#xff0c;成为不少用户的首选&#xff0c;不管是新手还是老手&#xff…...

MaterialSkin 2.0终极指南:3步解锁现代化WinForms界面设计

MaterialSkin 2.0终极指南&#xff1a;3步解锁现代化WinForms界面设计 【免费下载链接】MaterialSkin Theming .NET WinForms, C# or VB.Net, to Googles Material Design Principles. 项目地址: https://gitcode.com/gh_mirrors/mat/MaterialSkin 还在为传统WinForms应…...