【杂记】java 大集合进行拆分

这篇具有很好参考价值的文章主要介绍了【杂记】java 大集合进行拆分。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

日常中需要对一个大的集合进行拆分成多个小集合,其主要思路为:

  1. 设置需要拆分多少个小集合 A
  2. 大集合里面有多少条数据 B
  3. 计算出每个集合里面有多个条数据 C=B/A
  4. 计算出看是否存在余数 D=B%A
  5. 采用集合(List.subList())的方法对大集合进行拆分,循环A变进行集合拆分(List.subList((A-1)*C,(A-1)*C+(C-1))
  6. 如果存在余数D,则需要将剩余的数据放在一个集合中 (List.subList((AC,AC+D)

代码如下:文章来源地址https://www.toymoban.com/news/detail-719415.html

 /**
     * 集合切分(将一个1002大小的集合,拆分为5个小集合)
     * @param list 目标集合
     * @param partitionSize 需要拆分集合的个数
     * @param <T> 泛型对象
     * @return 切分后的总的集合
     */
    public static <T> List<List<T>> listPartition(List<T> list, int partitionSize) {
        //①如果集合时空的或者初始设置的集合大小小于等于0,返回一个新集合
        if (list.isEmpty() || partitionSize <= 0) {
            return new ArrayList();
        }
        //②封装最后返回的结果集的集合
        List<List<T>> listResult = new ArrayList<>();
        int size = list.size();
        //③如果目标集合的大小小于设置集合的大小,将目标集合,全部加载到封装结果集中,返回结束
        if (size <= partitionSize) {
            listResult.add(list);
            return listResult;
        }
        //④计算出拆分的集合的大小(size =1002, partitionSize= 5  partitionNum =200 partitionRemainder=2)
        int partitionNum = size / partitionSize;
        //⑤计算出最后一个拆分集合的大小
        int partitionRemainder = size % partitionSize;
        for (int a = 1; a <= partitionSize; a++) {
            //⑥对目标集合进行截取 ((1-1)*200,((1-1)*200)+(200-1))
            List<T> ts = list.subList((a - 1) * partitionNum, ((a - 1) * partitionNum) + (partitionNum - 1));
            listResult.add(ts);
        }
        //⑦如果最后一个拆分集合的大小大于0
        if (partitionRemainder > 0) {
            //⑧对目标集合进行截取 ((200*5,200*5+2)
            List<T> ts = list.subList(partitionNum * partitionSize, partitionNum * partitionSize + partitionRemainder);
            listResult.add(ts);
        }
        //⑨返回结果集
        return listResult;
    }

到了这里,关于【杂记】java 大集合进行拆分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 对读取的Excel文件数据进行拆分并发请求发送到后端服务器

    首先,我们先回顾一下文件的读取操作: 本地读取Excel文件并进行数据压缩传递到服务器-CSDN博客 第一步:根据以上博客,我们将原先的handleFile方法,改为以下内容: 先对data数据进行打印,获取到一千多行的数据信息 那么如何对1000多条信息进行分组处理呢???  因为我

    2024年01月23日
    浏览(48)
  • Java杂记————object.getClass()和object.class以及Java中的toString()方法的的区别

    (这里补充一下:Class类,它就是一个类,它将普通的类作为它的对象: 每个普通类都只有一个Class对象 普通类的Class对象用getClass()方法或者class来获取     比如    同时我们还可以延伸Field属性类,Constructor构造器类) 需要注意的是: 直接用print之类的函数输出一个对象会

    2024年02月11日
    浏览(45)
  • 整数拆分(力扣)动态规划 JAVA

    给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k = 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n = 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1。 示例 2: 输入: n = 10 输出: 36 解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。 提示: 2 = n = 58 里程碑意义 解题思路:

    2024年02月17日
    浏览(46)
  • java Spring Boot将不同配置拆分入不同文件管理

    关于java多环境开发 最后还有一个小点 我们一般会将不同的配置 放在不同的配置文件中 好处肯定就在于 想换的时候非常方便 那么 我们直接看代码 我们将项目中的 application.yml 更改代码如下 这里 意思是 我们选择了dev 环境 然后创建一个文件 叫 application-dev.yml 参考代码如下

    2024年02月11日
    浏览(65)
  • 如何在Java中将一个列表拆分为多个较小的列表

    在Java中,有多种方法可以将一个列表拆分为多个较小的列表。在本文中,我们将介绍三种不同的方法来实现这一目标。 List 接口提供了一个 subList() 方法,它可以用来获取列表中的一部分元素。我们可以使用这个方法来将一个列表拆分为多个较小的列表。 下面是一个简单的示

    2024年02月15日
    浏览(40)
  • GIS产品开源大集合

    • ArcGIS - Ersi发布的企业级桌面GIS软件 • QGIS - 跨平台的免费和开源桌面GIS软件 • GeoDa -空间数据分析简介 • GRASS GIS - 用于地理空间数据管理和分析,作为OSGEO的创始成员 • uDig -使用Eclipse构建的开源桌面应用程序框架 • gvSIG - 功能强大,用户友好,可互操作的地理信息专业

    2024年02月08日
    浏览(55)
  • java中pdfbox处理pdf常用方法(读取、写入、合并、拆分、写文字、写图片)

    方法代码: 测试用例: 2.1写文字 方法代码: 测试用例: A.pdf: A2.pdf: 2.2写图片 方法代码: 测试用例: A.pdf: pic.jpg: A2.pdf: 方法代码: 测试用例: 方法代码: 测试用例: 引用链接: (17条消息) 使用Apache PDFBox实现拆分、合并PDF_似有风中泣的博客-CSDN博客 (17条消息) Java使用P

    2024年02月11日
    浏览(128)
  • 微信小程序美化方法大集合

    微信小程序的界面美化非常重要,一个优秀的界面能对用户产生更大的吸引力,本文整理了适用于微信小程序页面美化的常用方法,包括: 颜色透明度控制 组件圆角显示 组件阴影显示 组件/页面渐变色 文字渐变色 背景区域裁剪 先看一个对比案例,下面分别是一个小程序美

    2024年02月01日
    浏览(29)
  • 不需要pygame的摸鱼游戏大集合

    1. 2. 3. 4.(小插曲)

    2024年02月11日
    浏览(30)
  • 【Js】数组(包括es6)方法大集合

    数组方法(包括es6) 1、arr.push() 从后面添加元素,返回值为添加完后的数组的长度 , 改变原数组 2、arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素 ( 改变原数组 ) 3、arr.shift() 从前面删除元素,只能删除一个 返回值是删除的元素( 改变原数组 ) 4、arr.unshift(

    2023年04月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包