`

把一个集合按指定大小分组

 
阅读更多
public static <T> List<List<T>> partition(final List<T> list, final int size) {
        if (list == null) {
            throw new IllegalArgumentException("List must not be null");
        }
        if (size <= 0) {
            throw new IllegalArgumentException("Size must be greater than 0");
        }
        List<List<T>> result = new ArrayList<>();
        Iterator<T> it = list.iterator();
        List<T> subList = null;
        while(it.hasNext()) {
        	if(subList == null) {
        		subList = new ArrayList<>();
        	}
        	T t = it.next();
        	subList.add(t);
        	if(subList.size() == size) {
        		result.add(subList);
        		subList = null;
        	}
        }
        //补充最后一页
        if(subList != null) {
        	result.add(subList);
        }
        return result;
    }

 

上面的算法,

其实用这个方法可以代替:

org.apache.commons.collections4.ListUtils.partition(final List<T> list, final int size);

 

 

分享到:
评论

相关推荐

    java 集合分组与排序

    `Collectors.groupingBy`方法允许我们将集合中的元素按照指定的键进行分组,创建一个Map,其中键是分组的标准,值是一个包含该组所有元素的列表。例如,如果我们有一个`Person`对象的列表,可以按年龄分组: ```...

    数组与集合的几个区别(五个)

    因此,在处理已知且固定大小的数据集时,数组是一个很好的选择。 **集合** 类似于动态数组,可以根据需要自动扩展或收缩其容量。这种特性使得集合非常适合处理未知数量的元素,尤其是在需要频繁添加或删除元素的...

    listbox分组

    为了实现分组,我们需要一个包含嵌套集合的对象结构,例如一个包含多个类别的商品列表,每个类别下有多个商品。 2. **应用CollectionView**:可以通过`CollectionViewSource`对象来创建并应用`CollectionView`。在...

    UICollection实现分组效果

    本教程将深入探讨如何使用Swift语言实现一个分组效果的UICollectionView,具体通过装饰视图(Decoration View)来完成。装饰视图是UICollectionView中的一个特性,允许我们在不改变原有cell数据的情况下,为视图添加...

    db2命令集合 db2命令集合

    创建一个名为`test`的新数据库。 8. **查看数据库配置** ```sql db2getdbcfg for test | more ``` 查看名为`test`的数据库配置详情。 9. **更新数据库配置** ```sql db2updatedbcfg for test using para_...

    查找,分组文件 linq to objects

    这个程序可能展示了如何组合使用`Where`、`GroupBy`和其他LINQ方法来实现更复杂的查询,例如多条件查找、分组后按大小排序等。通过查看和学习这个示例,开发者可以深入理解如何在实际项目中应用LINQ to Objects,...

    Linq基础学习资料,通俗易懂

    - **IEnumerable**:提供了一个迭代器,用于按顺序访问集合中的元素。 - **IEnumerator**:表示一个迭代器,可以移动到序列中的下一个元素。 - **正常使用**:`foreach`循环可以方便地遍历实现了`IEnumerable`接口...

    Swift常用的序列和集合算法_Swift_下载.zip

    本资源“Swift常用的序列和集合算法_Swift_下载.zip”可能包含一个名为“swift-algorithms-main”的项目,旨在深入讲解这些概念。 一、序列(Sequence) 序列是一种可以逐一访问其元素的数据类型。在Swift中,`...

    JAVA简单分组的算法实现

    通过这个简单的分组算法,我们可以根据需要将任何长度的数组分成指定大小的子集。不过,这个算法有一个限制,就是假设我们总是希望每组有5个元素。如果需要更通用的分组算法,可能需要增加额外的参数来指定组的大小...

    php实现把数组按指定的个数分隔

    在所提供的文件内容中,我们可以看到如何利用PHP语言实现一个函数,用于把一个数组按照指定的个数进行分隔。这个过程包括了以下知识点: 1. 函数定义:在PHP中定义函数使用关键字`function`,可以指定函数名和参数...

    matlab数理统计和数据分析及优化求解:47 绘制维安尼曲线.zip

    MATLAB中的`venn`函数接受一个二维数组作为输入,该数组的每个元素对应于不同集合的大小。对于两个集合的情况,你可以创建一个2x3的矩阵,其中第一行表示集合A的信息,第二行表示集合B的信息。例如: ```matlab ...

    Window Builder功能介绍

    - RigidArea:创建一个总是具有指定大小的不可见组件,用于控制界面布局。 - Glue:用于定义组件间的弹性间隔。 Window Builder同样支持多种布局管理器,以适应不同设计需求: - AbsoluteLayout:绝对布局允许...

    如何编写MATLAB GUI没有导向,以帮助特定问题的集合 其中许多是直接从新闻组的启发.zip

    本压缩包文件“如何编写MATLAB GUI没有导向,以帮助特定问题的集合 其中许多是直接从新闻组的启发.zip”似乎是一个教程集合,旨在指导用户如何在缺乏正式指导的情况下自行编写MATLAB GUI。 在MATLAB中,GUI通常由多...

    常见DIV+CSS问题集合与解决.docx

    这是一个设置了固定大小的DIV ``` - **使用百分比设置大小**: - **CSS**: ```css div { width: 50%; /* 设置宽度为父元素宽度的50% */ height: 50%; /* 设置高度为父元素高度的50% */ } ``` - **HTML**...

    CSS3 漂亮的下载按钮.rar

    "CSS3 漂亮的下载按钮.rar"这个资源就是一个利用CSS3技术制作的、具有交互性的下载按钮集合。这些按钮设计独特,不仅外观吸引人,而且能够根据用户的鼠标动作做出响应,如在鼠标滑过时产生立体效果,增加了用户与...

    Laravel框架集合用法实例浅析

    - `chunk`:将集合拆分成多个指定大小的小集合。 - `combine`:将多个数组的集合合并成一个数组的集合。 - `contains`:判断集合是否包含给定的项目。 - `count`:返回集合内的项目总数。 - `dd`:打印集合的项目并...

    WPF DataGrid功能集合

    在.NET Framework中,Windows Presentation Foundation (WPF) 提供了一个强大的数据绑定和用户界面控件集,其中DataGrid控件是用于展示和编辑表格数据的关键组件。本篇将深入探讨WPF DataGrid的功能集合,以及如何...

    lefse-tool,lefse分析安装所需要的工具集合。

    lefse-tool 是一个专为微生物数据分析设计的工具集合,它主要用于支持lefse(LEfSe,LDA Effect Size)分析。LEfSe是一种流行的方法,用于在高通量生物标记数据中识别具有显著生物差异的分类单元,特别是在微生物组...

    C#实现随机抽取名单效果-支持导入导出

    通过以上步骤,我们可以构建一个功能完善的C#随机名单抽取系统,实现从Excel导入名单,按需分组,并将结果导出回Excel的功能。这个项目不仅涵盖了C#的基本编程技巧,还涉及到文件操作、面向对象设计以及用户界面设计...

Global site tag (gtag.js) - Google Analytics