0
点赞
收藏
分享

微信扫一扫

java steam 合并list

穆风1818 2024-01-12 阅读 19

Java Stream 合并 List

引言

Java Stream 是 Java 8 引入的一个新的操作数据集的方式。它提供了一种更简洁、更易读、更灵活的方式来操作集合数据,使得代码变得更加优雅和简洁。在实际应用中,我们经常会遇到需要合并多个 List 的情况,本文将介绍如何使用 Java Stream 来合并 List,并给出代码示例。

问题背景

在日常开发中,我们经常需要将多个 List 合并为一个 List。例如,我们有两个 List,一个包含男性用户,一个包含女性用户,我们需要将这两个 List 合并成一个包含所有用户的 List。在没有使用 Java Stream 的情况下,我们通常需要使用传统的方式来合并 List,比如使用 for 循环遍历每个 List,然后将元素一个个添加到新的 List 中。这种方式繁琐而且容易出错,而且代码看起来不够简洁和优雅。Java Stream 提供了更简单的方式来解决这个问题。

解决方案

Java Stream 提供了 Stream.concat() 方法来合并多个 Stream。我们可以先将每个 List 转换为 Stream,然后使用 Stream.concat() 方法将它们合并成一个 Stream,最后将 Stream 转换回 List。下面是一个示例代码:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class ListMerger {
    public static void main(String[] args) {
        List<String> list1 = new ArrayList<>();
        list1.add("Tom");
        list1.add("Jerry");
        
        List<String> list2 = new ArrayList<>();
        list2.add("Alice");
        list2.add("Bob");

        List<String> mergedList = Stream.concat(list1.stream(), list2.stream())
                                        .collect(Collectors.toList());

        System.out.println(mergedList);
    }
}

上述代码中,我们先创建了两个 List:list1list2。然后,我们使用 Stream.concat() 方法将它们合并成一个 Stream,再使用 Collectors.toList() 方法将 Stream 转换为 List。最后,我们打印出合并后的 List。

输出结果为:

[Tom, Jerry, Alice, Bob]

可以看到,合并后的 List 包含了两个原始 List 的所有元素。

类图

下面是一个类图,展示了本文中使用的类和它们之间的关系。

classDiagram
    class ListMerger {
        <<class>> +main(String[] args)
    }
    List<String> <-- ListMerger
    ArrayList<String> <-- List<String>
    Stream<String> <-- List<String>
    Collectors <-- Stream<String>

总结

本文介绍了如何使用 Java Stream 合并多个 List 的方法。通过使用 Stream.concat() 方法和 Collectors.toList() 方法,我们可以轻松地将多个 List 合并成一个 List,并且代码看起来更加简洁和优雅。使用 Java Stream 可以提高我们的开发效率,使得代码更易读和维护。

希望本文对你理解和使用 Java Stream 有所帮助。如果你对 Java Stream 还有其他问题或疑惑,可以参考 Java 官方文档或其他相关资源来进一步学习和探索。

参考资料

  • [Java Stream API](
举报

相关推荐

0 条评论