广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >如何在Java中将一个列表拆分为多个较小的列表
  • 429
分享到

如何在Java中将一个列表拆分为多个较小的列表

javajvm开发语言 2023-09-02 11:09:07 429人浏览 八月长安
摘要

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

在Java中,有多种方法可以将一个列表拆分为多个较小的列表。在本文中,我们将介绍三种不同的方法来实现这一目标。

方法一:使用List.subList()方法

List接口提供了一个subList()方法,它可以用来获取列表中的一部分元素。我们可以使用这个方法来将一个列表拆分为多个较小的列表。

下面是一个简单的示例,它展示了如何使用subList()方法来将一个列表拆分为多个较小的列表:

import java.util.ArrayList;import java.util.List;public class Main {    public static void main(String[] args) {        List list = new ArrayList<>();        for (int i = 0; i < 10; i++) {            list.add(i);        }        int chunkSize = 3;        int numOfChunks = (int) Math.ceil((double) list.size() / chunkSize);        List> chunks = new ArrayList<>(numOfChunks);        for (int i = 0; i < numOfChunks; i++) {            int fromIndex = i * chunkSize;            int toIndex = Math.min(fromIndex + chunkSize, list.size());            chunks.add(list.subList(fromIndex, toIndex));        }        for (List chunk : chunks) {            System.out.println(chunk);        }    }}

在上面的代码中,我们首先创建了一个包含10个元素的列表。然后,我们定义了一个变量chunkSize来表示每个子列表的大小。接下来,我们计算出需要拆分成多少个子列表,并创建一个新的列表来保存这些子列表。

然后,我们使用一个循环来遍历每个子列表,并使用subList()方法来获取原始列表中对应的元素。最后,我们将每个子列表添加到保存子列表的列表中。

运行上面的代码后,您会看到输出如下:

[0, 1, 2][3, 4, 5][6, 7, 8][9]

 

方法二:使用Java 8流和收集器

如果您使用的是Java 8或更高版本,您可以使用流(Stream)和收集器(Collector)来简化上面的代码。下面是一个简单的示例,它展示了如何使用流和收集器来将一个列表拆分为多个较小的列表:

import java.util.List;import java.util.stream.Collectors;import java.util.stream.IntStream;public class Main {    public static void main(String[] args) {        List list = IntStream.range(0, 10).boxed().collect(Collectors.toList());        int chunkSize = 3;        List> chunks = IntStream.range(0, (list.size() + chunkSize - 1) / chunkSize)            .mapToObj(i -> list.subList(i * chunkSize, Math.min((i + 1) * chunkSize, list.size())))            .collect(Collectors.toList());        chunks.forEach(System.out::println);    }}

在上面的代码中,我们首先使用IntStream.range()方法和Collectors.toList()收集器来创建一个包含10个元素的列表。然后,我们定义了一个变量chunkSize来表示每个子列表的大小。

接下来,我们使用IntStream.range()方法和mapToObj()方法来遍历每个子列表,并使用subList()方法来获取原始列表中对应的元素。最后,我们使用Collectors.toList()收集器来将所有子列表收集到一个新的列表中。

方法三:使用Guava库

如果您想使用Guava库来拆分列表,您可以使用Lists.partition()方法。这个方法接受两个参数:一个列表和一个整数,它会将列表拆分为指定大小的子列表。

下面是一个简单的示例,它展示了如何使用Lists.partition()方法来将一个列表拆分为多个较小的列表:

import com.Google.common.collect.Lists;import java.util.List;public class Main {    public static void main(String[] args) {        List list = Lists.newArrayList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);        int chunkSize = 3;        List> chunks = Lists.partition(list, chunkSize);        for (List chunk : chunks) {            System.out.println(chunk);        }    }}

在上面的代码中,我们首先使用Lists.newArrayList()方法来创建一个包含10个元素的列表。然后,我们定义了一个变量chunkSize来表示每个子列表的大小。接下来,我们使用Lists.partition()方法来将原始列表拆分为多个子列表。

运行上面的代码后,您会看到输出与前面的示例相同。

希望这些信息能够帮助您。😊

来源地址:https://blog.csdn.net/xixiyuguang/article/details/129811057

--结束END--

本文标题: 如何在Java中将一个列表拆分为多个较小的列表

本文链接: https://www.lsjlt.com/news/390678.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作