美文网首页
java 实现将 List 分成多个指定大小的子 List

java 实现将 List 分成多个指定大小的子 List

作者: 惜鸟 | 来源:发表于2021-05-14 15:06 被阅读0次

一、概述

在开发过程中有这样一个需求,想要把一个 List 分成多个指定大小的子 List,需求很简单,这里记录一下使用两种方式实现:

  • 自己写 Java 代码实现
  • 使用 guava 提供的工具类实现

二、写 Java 代码实现

实现代码如下所示:

    public static <T> List<List<T>> partition(List<T> list, int size) {
        List<List<T>> result = new ArrayList<>();
        if (list == null) {
            throw new NullPointerException("list 不能为 null");
        }
        if (size <= 0) {
            throw new IllegalArgumentException("size 必须大于 0");
        }
        if (list.size() < size) {
            result.add(list);
        } else {
            int r = list.size() / size;
            for (int i = 0; i < r; i++) {
                List<T> subList = list.subList(i * size, (i + 1) * size);
                result.add(subList);
            }
            if (r * size < list.size()) {
                List<T> subList = list.subList(r * size, list.size());
                result.add(subList);
            }
        }
        return result;
    }

三、使用 guava 提供的工具类实现

第一步:添加依赖

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>30.0-jre</version>
</dependency>

第二步:调用 Lists.partition

public static void main(String[] args) {
    List<String> idList = new ArrayList<>();
    for (int i = 0; i < 25; i++) {
        idList.add(UUID.randomUUID().toString());
    }
    List<List<String>> partition = Lists.partition(idList, 3);
    for (List<String> strings : partition) {
        System.out.println(strings.size());
        System.out.println(strings);
    }
}

相关文章

  • java 实现将 List 分成多个指定大小的子 List

    一、概述 在开发过程中有这样一个需求,想要把一个 List 分成多个指定大小的子 List,需求很简单,这里记录一...

  • List split

    功能: 将List切分为指定大小的List组 源码:

  • java中List集合删除元素

    List删除所有指定元素 环境:jdk8 1.概要 java中List使用List.remove()直接删除指定元...

  • Java中将list转换为array

    1. List.toArray() java8中的hotspot会自己计算数组大小,不必指定数组的大小。例如:St...

  • 【面试系列】List集合

    小茵:要不今天来讲讲Java的List吧,你对List了解多少? 小奥:List在Java里边是一个接口,常见的实...

  • 归并排序 --- Java版

    算法思路 把待排序List中间切分成2段,而且是递归切分,直到子List元素只有1个结束。 把切分好的子List,...

  • List集合操作

    一.将List集合按照指定size分为若干小list 二、 实现java 中 list集合中有几十万条数据,每10...

  • Mybatis映射器多个参数的传递

    java bean 传递多个参数 List findRolesByBean(RoleParams rp...

  • list集合遍历方式

    Java中List集合的三种遍历方式:①for循环遍历:指定下标长度,使用List集合的size()方法,进行fo...

  • jdk8 流操作

    stream操作 list排序 list 按指定条数分割

网友评论

      本文标题:java 实现将 List 分成多个指定大小的子 List

      本文链接:https://www.haomeiwen.com/subject/ejtgzhtx.html