关于Lists.partition集合分组使用以及注意事项

 更新时间:2024年01月04日 15:29:17   作者:liuhuapeng0304  
这篇文章主要介绍了关于Lists.partition集合分组使用以及注意事项,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1.介绍

Lists.partition是com.google.common.collect包下的一个方法。

作用是将目标集合按照传入的size分组。

2.使用场景

一般用于固定大小的集合处理

比如:

我有两百个商品类型,要求前一百个一种处理方式,后一百个一种处理方式。

3.用法

  • pom文件
<dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>21.0</version>
    </dependency>
  • 测试方法
 public static void main(String[] args) {
 		//需要进行分组的集合
        List<Integer> targetList = new ArrayList<>();
        targetList.add(1);
        targetList.add(2);
        targetList.add(3);
        targetList.add(4);
        targetList.add(5);
        targetList.add(6);
        //集合分组。2代表 每两个分成一组。已知集合size=6,两个一组即分为三组
        List<List<Integer>> partition = Lists.partition(targetList, 2);
        System.out.println("切分后的数组,index【0】:"+partition.get(0));
        System.out.println("切分后的数组,index【1】:"+partition.get(1));
        System.out.println("切分后的数组,index【2】:"+partition.get(2));

    }
  • 结果

注意:

如果对也就是对子集合的操作会反映到原集合, 对原集合的操作也会影响子集合。

  • 测试方法
public static void main(String[] args) {
        List<Integer> targetList = new ArrayList<>();
        targetList.add(1);
        targetList.add(2);
        targetList.add(3);
        targetList.add(4);
        targetList.add(5);
        targetList.add(6);
        List<List<Integer>> partition = Lists.partition(targetList, 2);
        System.out.println("切分后的数组,index【0】:"+partition.get(0));
        System.out.println("切分后的数组,index【1】:"+partition.get(1));
        System.out.println("切分后的数组,index【2】:"+partition.get(2));
        targetList.clear();
        System.out.println("原集合大小"+targetList.size());
        System.out.println("分组后集合大小"+partition.size());


    }
  • 结果

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • IntelliJ IDEA 创建 Java 项目及创建 Java 文件并运行的详细步骤

    IntelliJ IDEA 创建 Java 项目及创建 Java 文件并运行的详细步骤

    这篇文章主要介绍了IntelliJ IDEA 创建 Java 项目及创建 Java 文件并运行的详细步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Maven搭建springboot项目的方法步骤

    Maven搭建springboot项目的方法步骤

    这篇文章主要介绍了Maven搭建springboot项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Java中Lombok的@Builder注解注意事项

    Java中Lombok的@Builder注解注意事项

    这篇文章主要介绍了Java中Lombok的@Builder注解注意事项,使用Lombok也会造成很多问题,尤其@Builder 有个很大的坑,已经见过好几次由于使用@Builder注解导致默认值失效的问题,如果测试时没有在意这个问题,就很容易引发线上问题,需要的朋友可以参考下
    2023-12-12
  • java图形界面编程实战代码

    java图形界面编程实战代码

    这篇文章主要介绍了java图形界面编程实战代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Scala递归函数调用自身

    Scala递归函数调用自身

    这篇文章主要介绍了Scala递归函数,Scala递归函数是一种函数可以调用自身的函数,直到满足某个特定的条件为止。在函数式编程的语言中,递归函数起着重要的作用,因为它可以用来表示循环或迭代的逻辑
    2023-04-04
  • springboot 事件监听的实现方法

    springboot 事件监听的实现方法

    这篇文章主要介绍了springboot 事件监听的实现方法,并详细的介绍了四种监听方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • Springboot简单热部署实现步骤解析

    Springboot简单热部署实现步骤解析

    这篇文章主要介绍了Springboot简单热部署实现步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • 浅谈Java中的LinkedHashSet哈希链表

    浅谈Java中的LinkedHashSet哈希链表

    这篇文章主要介绍了浅谈Java中的LinkedHashSet哈希链表,LinkedHashSet 是 Java 中的一个集合类,它是 HashSet 的子类,并实现了 Set 接口,与 HashSet 不同的是,LinkedHashSet 保留了元素插入的顺序,并且具有 HashSet 的快速查找特性,需要的朋友可以参考下
    2023-09-09
  • Springboot实现从controller中跳转到指定前端页面

    Springboot实现从controller中跳转到指定前端页面

    Springboot实现从controller中跳转到指定前端页面方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Java 实现微信和支付宝支付功能

    Java 实现微信和支付宝支付功能

    这篇文章主要介绍了Java 实现微信和支付宝支付功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02

最新评论