将一个大集合切分成多个小集合

问题描述

将一个大集合切分成多个小集合,将List拆分很多的小的List的过程,我们称之为分片,当然也可以称为List的分隔,选一个你喜欢的名字就行,你喜欢的就是最好的

解决方案:

在Java中分片的常见实现方法有以下几种:

使用Google的Guava框架实现切片。

  1. 先在项目的 pom.xml 中添加框架支持,增加以下配置:
<dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>31.1-jre</version>
        </dependency>
  1. 有了 Guava 框架之后,只需要使用 Lists.partition方法即可实现分片,如下代码所示:
List<String> tempList = Arrays.asList("水星","金星","地球","火星","木星","土星","冥王星","天王星","海王星");
        List<List<String>> partition = Lists.partition(tempList, 4);
        System.out.println(partition);
  1. 结果如下:(拆成如下结果,开发的时候再遍历集合进行应用)
// 结果为:
[[水星, 金星, 地球, 火星], [木星, 土星, 冥王星, 天王星], [海王星]]

使用Apache的commons框架实现切片。

  1. 先在项目的 pom.xml 中添加框架支持,增加以下配置:
<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.4</version>
        </dependency>
  1. 有了 Guava 框架之后,只需要使用 Lists.partition方法即可实现分片,如下代码所示:
 List<String> apacheList = Arrays.asList("水星","金星","地球","火星","木星","土星","冥王星","天王星","海王星");
        List<List<String>> partition1 = ListUtils.partition(apacheList,4);
        System.out.println(partition1);
  1. 结果如下:(拆成如下结果,开发的时候再遍历集合进行应用)
// 结果为:
[[水星, 金星, 地球, 火星], [木星, 土星, 冥王星, 天王星], [海王星]]

使用Hutool工具类实现切片。

  1. 先在项目的 pom.xml 中添加框架支持,增加以下配置:
<dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.18</version>
        </dependency>
  1. 有了 Guava 框架之后,只需要使用 Lists.partition方法即可实现分片,如下代码所示:
 List<String> hutoolList = Arrays.asList("水星","金星","地球","火星","木星","土星","冥王星","天王星","海王星");
        List<List<String>> partition2 = ListUtil.partition(hutoolList,4);
        System.out.println(partition2);
  1. 结果如下:(拆成如下结果,开发的时候再遍历集合进行应用)
// 结果为:
[[水星, 金星, 地球, 火星], [木星, 土星, 冥王星, 天王星], [海王星]]
  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值