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

大集合拆分成多个小集合

文章目录

  • 1. 场景
  • 2. 拆分集合方法(写了三种)
  • 3. 格式化打印方法

1. 场景

在数据库批量操作时,有可能数据量过大,不能一次性操作,所以需要将大集合拆分为多个小集合进行多次操作

2. 拆分集合方法(写了三种)

import com.google.common.collect.Lists;
import com.xin.demo.fastjsondemo.FastJsonFormatPrintUtils;
import org.apache.commons.collections4.CollectionUtils;import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;public class PartitionListDemo {private static final int PARTITION_SIZE = 10;public static void main(String[] args) {// 大集合List<String> list = new ArrayList<>();for (int i = 0; i < 33; i++) {list.add("xinliushijian" + i);}// 方法1 guava工具List<List<String>> partitionList = Lists.partition(list, PARTITION_SIZE);FastJsonFormatPrintUtils.formatPrint(partitionList);System.out.println("===============");// 方法2 stream流实现List<List<String>> partitionList1 = partList1(list, PARTITION_SIZE);FastJsonFormatPrintUtils.formatPrint(partitionList1);// 方法3 普通方法实现partList2(list, PARTITION_SIZE);}public static <T> List<List<T>> partList1(List<T> list, int size) {if (CollectionUtils.isEmpty(list) || size < 1) {return new ArrayList<>();}List<List<T>> partList = IntStream.range(0, list.size()).boxed().collect(Collectors.groupingBy(index -> index / size)).values().stream().map(indices -> indices.stream().map(list::get).collect(Collectors.toList())).collect(Collectors.toList());return partList;}public static <T> List<List<T>> partList2(List<T> list, int size) {if (CollectionUtils.isEmpty(list) || size < 1) {return new ArrayList<>();}List<List<T>> allPartList = new ArrayList<>();for (int i = 0; i < list.size(); i+=size) {if (i + size > list.size()) {size  = list.size() - i;}List<T> parList = list.subList(i, i + size);allPartList.add(parList);}FastJsonFormatPrintUtils.formatPrint(allPartList);return allPartList;}}

3. 格式化打印方法

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.JSON;public class FastJsonFormatPrintUtils {public static void formatPrint(Object object) {String pretty = JSON.toJSONString(object, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteDateUseDateFormat);System.out.println(pretty);}}

相关文章:

大集合拆分成多个小集合

文章目录 1. 场景2. 拆分集合方法&#xff08;写了三种&#xff09;3. 格式化打印方法 1. 场景 在数据库批量操作时&#xff0c;有可能数据量过大&#xff0c;不能一次性操作&#xff0c;所以需要将大集合拆分为多个小集合进行多次操作 2. 拆分集合方法&#xff08;写了三种&…...

linux————LVS集群

目录 一、集群概述 一、负载均衡技术类型 二、负载均衡实现方式 二、LVS结构 一、三层结构 二、架构对象 三、LVS工作模式 四、负载均衡算法 一、静态负载均衡 二、动态负载 五、ipvsadm命令详解 六、LVS配置 一、基础配置 二、实现NAT模型搭建 配置IP地址 安装…...

软考高级系统架构设计师系列论文七十一:论行业应用软件系统的开发规划

软考高级系统架构设计师系列论文七十一:论行业应用软件系统的开发规划 一、软件系统相关知识二、摘要三、正文四、总结一、软件系统相关知识 软考高级系统架构设计师系列之:系统开发基础知识...

vue2 自定义指令,插槽

一、学习目标 1.自定义指令 基本语法&#xff08;全局、局部注册&#xff09;指令的值v-loading的指令封装 2.插槽 默认插槽具名插槽作用域插槽 二、自定义指令 1.指令介绍 内置指令&#xff1a;v-html、v-if、v-bind、v-on… 这都是Vue给咱们内置的一些指令&#xff0c;…...

oracle超详细语法和备份工具

oracle基础语法 在 Oracle 开发中&#xff0c;客户端把 SQL 语句发送给服务器&#xff0c;服务器对 SQL 语句进行编译、执行&#xff0c;把执行的结果返回给客户端。常用的SQL语句大致可以分为五类&#xff1a;数据定义语言&#xff08;DDL&#xff09;&#xff0c;包括 CREAT…...

Redis的持久化机制是什么?各自的优缺点?

Redis拥有两种持久化机制&#xff1a;RDB(Redis Database)和AOF(Append-Only File)。 1.RDB(Redis Database)持久化机制 RDB是Redis的默认持久化方式&#xff0c;它通过将Redis在某个时间点的数据状态保存到磁盘上的二进制文件中。该文件是一个快照(snapshot)&#xff0c;包含…...

机器学习:什么是分类/回归/聚类/降维/决策

目录 学习模式分为三大类&#xff1a;监督&#xff0c;无监督&#xff0c;强化学习 监督学习基本问题 分类问题 回归问题 无监督学习基本问题 聚类问题 降维问题 强化学习基本问题 决策问题 如何选择合适的算法 我们将涵盖目前「五大」最常见机器学习任务&#xff1a…...

算法通关村第5关【白银】| 哈希和栈经典算法题

1.两个栈实现队列 思路&#xff1a;两个栈&#xff0c;一个输入栈&#xff0c;一个输出栈。 当需要输入的时候就往inStack中插入&#xff0c;需要输出就往outStack中输出&#xff0c;当输出栈是空就倒出输入栈的数据到输出栈中&#xff0c;这样就保证了后插入的数据从栈顶倒入…...

CrystalNet .Net VCL for Delphi Crack

CrystalNet .Net VCL for Delphi Crack VCL或更为人所知的可视化组件库是基于一个面向对象的框架&#xff0c;什么是用户对开发人员和事件的Microsoft Windows应用程序的接口。可视化组件库是用对象Pascal编写的。它主要是为使用Borland而开发的&#xff0c;它具有与Delphi以及…...

云计算在线实训系统建设方案

一、 人工智能与云计算系统概述 人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;是一种模拟人类智能的科学和工程&#xff0c;通过使用计算机系统来模拟、扩展和增强人类的智能能力。人工智能涉及多个领域&#xff0c;包括机器学习、深度学习、自然…...

C++ 珠心算测验

珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练&#xff0c; 既能够开发智力&#xff0c;又能够为日常生活带来很多便利&#xff0c;因而在很多学校得到普及。 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整…...

prometheus+cadvisor监控docker容器

一、安装cadvisor docker pull google/cadvisor:latest二、运行容器 docker run -d \--volume/:/rootfs:ro \--volume/var/run:/var/run:rw \--volume/sys:/sys:ro \--volume/var/lib/docker/:/var/lib/docker:ro \--publish8088:8080 \--detachtrue \--namecadvisor \--priv…...

13、Vue3 大事件管理系统

一、大事件项目介绍 和 创建 1.1 Vue3 大事件管理系统 在线演示&#xff1a; https://fe-bigevent-web.itheima.net/login 接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 基地址&#xff1a; http://big-event-vue-api-t.i…...

Redis三种特殊数据类型

Redis三种特殊数据类型 geospatial 地理位置 Redis 地理空间数据类型简介 Redis 地理空间索引允许您存储坐标并搜索它们。 此数据结构可用于查找给定半径或边界框内的邻近点。 基本命令 GEOADD 将位置添加到给定的地理空间索引&#xff08;请注意&#xff0c;使用此命令&a…...

python 模块BeautifulSoup 从HTML或XML文件中提取数据

一、安装 Beautiful Soup 是一个HTML/XML的解析器&#xff0c;主要的功能也是如何解析和提取 HTML/XML 数据。 lxml 只会局部遍历&#xff0c;而Beautiful Soup 是基于HTML DOM的&#xff0c;会载入整个文档&#xff0c;解析整个DOM树&#xff0c;因此时间和内存开销都会大很多…...

VS Code插件汇总

插件 Basic Chinese(Simplified) Language Pack C/C C/C CMake Tools C/C Extension Pack Web Open in browser Microsoft Edge Tool Linux WSL Tool AWS Toolkit Bito AI Code Assistant CursorCode TabNine IntelliCode Kite...

QWidget

文章目录 QWidget是Qt中用于创建用户界面的基类之一&#xff0c;其拥有许多成员函数、槽函数、信号、静态函数和枚举。虽然无法在此提供所有的函数和枚举&#xff0c;但以下是一些常用的例子&#xff1a; 成员函数&#xff1a; 设置父窗口的函数&#xff1a; void setParent(…...

【大数据】Linkis:打通上层应用与底层计算引擎的数据中间件

Linkis&#xff1a;打通上层应用与底层计算引擎的数据中间件 1.引言2.背景3.设计初衷4.技术架构5.业务架构6.处理流程7.如何支撑高并发8.用户级隔离度和调度时效性9.总结 Linkis 是微众银行开源的一款 数据中间件&#xff0c;用于解决前台各种工具、应用&#xff0c;和后台各种…...

权限提升-数据库提权-MSF-UDF提权

权限提升基础信息 1、具体有哪些权限需要我们了解掌握的&#xff1f; 后台权限&#xff0c;网站权限&#xff0c;数据库权限&#xff0c;接口权限&#xff0c;系统权限&#xff0c;域控权限等 2、以上常见权限获取方法简要归类说明&#xff1f; 后台权限&#xff1a;SQL注入,数…...

基于XL32F003单片机的可控硅调光方案

可控硅调光是一种用于调节电源输出电压的技术&#xff0c;被广泛应用于各种场景。它主要通过改变波形的导通角度来调节输出电压的大小&#xff0c;从而实现对照明设备亮度的控制。在照明市场占据了很大的调光市场。 可控硅调光的兼容性强&#xff0c;应用范围广。例如&#xff…...

基于Adafruit FLORA的红外遥控胸针DIY:从嵌入式编程到可穿戴艺术

1. 项目概述&#xff1a;一个藏在时尚配饰里的“电视终结者”几年前&#xff0c;我在一个朋友聚会上&#xff0c;发现大家明明在聊天&#xff0c;眼睛却总是不自觉地瞟向角落里那个正在播放无聊广告的电视。直接走过去关掉显得有点突兀&#xff0c;找遥控器又太麻烦。那一刻我就…...

Swagger2Word终极指南:3种方法实现API文档自动化转换

Swagger2Word终极指南&#xff1a;3种方法实现API文档自动化转换 【免费下载链接】swagger2word 项目地址: https://gitcode.com/gh_mirrors/swa/swagger2word 还在为手动编写API文档而烦恼吗&#xff1f;Swagger2Word为你提供了一站式自动化解决方案&#xff0c;将Swa…...

游戏技能工程化:用数据驱动与计算机视觉构建Apex Legends个人成长系统

1. 项目概述&#xff1a;从“Apex Growth”到“OpenClaw Skill”的爬升之路如果你是一名游戏开发者&#xff0c;尤其是对竞技类FPS&#xff08;第一人称射击&#xff09;游戏感兴趣&#xff0c;那么“Apex Legends”这个名字你一定不陌生。这款游戏以其快节奏、高机动性和深度的…...

C# AI开发实战:BotSharp框架构建企业级NLP应用指南

1. 项目概述&#xff1a;当C#开发者遇上AI应用开发如果你是一名长期深耕.NET生态的开发者&#xff0c;最近看着Python在AI领域风生水起&#xff0c;心里是不是有点痒&#xff0c;又有点不甘&#xff1f;总觉得为了跑个模型、搭个智能对话&#xff0c;就得切到另一个完全不同的技…...

Lua-RTOS-ESP32:用脚本语言快速开发物联网硬件的实践指南

1. 项目概述&#xff1a;当Lua遇上RTOS&#xff0c;在ESP32上构建轻量级物联网开发新范式如果你是一名嵌入式开发者&#xff0c;或者对物联网&#xff08;IoT&#xff09;设备编程感兴趣&#xff0c;那么你一定对ESP32这颗明星芯片不陌生。它凭借强大的双核处理能力、丰富的无线…...

AI控制协议标准(ACPS):构建智能体与工具交互的通用语言

1. 项目概述与核心价值最近在开源社区里&#xff0c;一个名为“AI-Control-Protocol-Standard”的项目引起了我的注意。这个由DaibinThink发起的项目&#xff0c;名字听起来就很有分量——“AI控制协议标准”。乍一看&#xff0c;你可能觉得这又是一个关于AI模型如何被调用的技…...

5分钟掌握浏览器串口调试:提升嵌入式开发效率300%的终极指南

5分钟掌握浏览器串口调试&#xff1a;提升嵌入式开发效率300%的终极指南 【免费下载链接】SerialAssistant A serial port assistant that can be used directly in the browser. 项目地址: https://gitcode.com/gh_mirrors/se/SerialAssistant 你是否还在为串口调试工具…...

ARM Cortex-X系列处理器参数配置与性能优化指南

1. ARM Cortex-X系列处理器参数配置概述在移动计算和嵌入式系统领域&#xff0c;ARM Cortex-X系列处理器代表了ARM架构中的高性能核心设计。作为芯片设计工程师&#xff0c;我经常需要对这些处理器的参数进行精细调整&#xff0c;以实现最佳的性能和能效平衡。处理器参数配置本…...

Arm Neoverse CMN-700缓存一致性互连网络架构解析

1. Arm Neoverse CMN-700架构概述Arm Neoverse CMN-700是Arm公司推出的新一代缓存一致性互连网络&#xff08;Coherent Mesh Network&#xff09;解决方案&#xff0c;专为高性能计算、云计算和基础设施应用设计。作为多核处理器系统中实现高效数据共享的关键基础设施&#xff…...

基于规则引擎的Markdown笔记自动化归档工具设计与实现

1. 项目概述&#xff1a;一个为知识工作者打造的自动化归档工具如果你和我一样&#xff0c;每天在 Obsidian、Logseq 或者任何支持 Markdown 的笔记软件里记录大量的“每日笔记”&#xff0c;那么你一定也面临过同样的困扰&#xff1a;日积月累&#xff0c;一个名为“Daily Not…...