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

将List切割为多个指定长度的多个List

参考:

  • https://blog.csdn.net/baidu_41480640/article/details/122507018
  • https://blog.csdn.net/H1767410/article/details/138333350
  • https://blog.51cto.com/u_16213352/7632003
  • https://blog.csdn.net/2301_82243396/article/details/137900249

手写1

private List<List<String>> splitList(List<String> list, int listSize){if (null === list || 0 === listSize) {return new ArrayList();}int length = list.size();int num = ( length + listSize- 1 )/listSize; List<List<String>> newList = new ArrayList<>(num);for (int i = 0; i < num; i++) {int fromIndex = i * listSize;int toIndex = (i+1) * listSize< length ? ( i+1 ) * listSize: length ;newList.add(list.subList(fromIndex, toIndex)) ;}return  newList ;}

手写2

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

手写3

    public static <T> List<List<T>> splitList(List<T> list, int splitSize) {return IntStream.range(0, (list.size() + splitSize - 1) / splitSize).mapToObj(i -> list.subList(i * splitSize, Math.min((i + 1) * splitSize, list.size()))).collect(Collectors.toList());}

Guava

    <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>12.0.1</version></dependency>
Lists.partition(list, listSize)

apache的collections4

    <dependency><groupId>org.apache.commons</groupId><artifactId>commons-collections4</artifactId><version>4.4</version></dependency>
ListUtils.partition(OLD_LIST, 3);

hutool

    <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.14</version></dependency>
ListUtil.partition(OLD_LIST, 3);
http://www.lryc.cn/news/395636.html

相关文章:

  • 【实战】mysql加密函数AES_ENCRYPT无缝迁移到磐维2.0的加密函数MY_ENCRYPT_AES128
  • 使用YOLO训练好自己的模型并持续训练【教程二】
  • STC32G/F/8H通用无刷电机驱动板
  • java Web 优秀本科毕业论文系统用eclipse定制开发mysql数据库BS模式java编程jdbc
  • SAP_MMABAP模块_MM60物料清单通过增强新增物料描述
  • lodash中flush的使用(debounce、throttle)
  • 设计高并发秒杀系统:保障稳定性与数据一致性
  • 从源码到成品:直播电商与短视频带货APP的开发之路
  • C++OCR API减轻人们文字录入的负担
  • web安全基础名词概念
  • ctfshow-web入门-文件上传(web161、web162、web163)远程包含
  • 【Gradle】(三)详细聊聊依赖管理:坐标、依赖配置、依赖传递、依赖冲突
  • C#数据类型:object、var和dynamic的比较与应用
  • 【面试题】MySQL(第一篇)
  • SQL Server集成服务(SSIS):数据集成的瑞士军刀
  • 鸿蒙开发HarmonyOS NEXT (三) 熟悉ArkTs (上)
  • 值传递与引用传递:理解Java中的参数传递机制
  • Qt常用基础控件总结—带边框的部件(QFrame和QLabel)
  • 太多项会毁了回归
  • python的魔法方法
  • [Vue3 + TS + Vite] 获取网页选中内容的字符串格式或HTML格式
  • 线程安全的原因及解决方法
  • 微信零钱明细删除了还能恢复吗?图文教程解析
  • mp4视频太大怎么压缩不影响画质,mp4文件太大怎么变小且清晰度高
  • 【线程同步-2】
  • 【别再为可视化工具付费了!】财务报表免费制作软件,这款免费可视化工具的功能超乎想象
  • 【HTML入门】第五课 - 加粗和倾斜的字体们
  • 解决树形表格 第一列中文字没有对齐
  • 三级_网络技术_09_IP地址规划技术
  • 力扣1878.矩阵中最大的三个菱形和