Java 合并多个 List 集合

在 Java 开发中,我们经常会遇到需要合并多个列表(List)集合的情况。本文将为您介绍几种常见的合并多个 List 集合的方法,并附有相应的代码示例。

1. 使用addAll() 方法

Java 的 List 接口提供了一个 addAll() 方法,可以将一个列表的所有元素添加到另一个列表中。通过循环遍历所有列表,我们可以将它们逐个合并到一个新的列表中。

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> list3 = new ArrayList<>(Arrays.asList(7, 8, 9));

List<Integer> mergedList = new ArrayList<>();
mergedList.addAll(list1);
mergedList.addAll(list2);
mergedList.addAll(list3);

在上面的代码示例中,我们创建了三个整数类型的 List 集合 list1list2list3,并将它们合并到一个新的列表 mergedList 中。

2. 使用Stream API

Java 8 引入了 Stream API,它提供了一种简洁而强大的方法来处理集合数据。通过使用 Stream 的 flatMap() 方法,我们可以将多个列表合并成一个列表。

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> list3 = new ArrayList<>(Arrays.asList(7, 8, 9));

List<Integer> mergedList = Stream.of(list1, list2, list3)
                .flatMap(Collection::stream)
                .collect(Collectors.toList());

在上面的代码示例中,我们首先使用 Stream.of() 方法将所有列表包装成一个 Stream,然后使用 flatMap() 方法将它们合并成一个扁平化的 Stream,最后通过 collect() 方法将 Stream 转换为 List。

3. 使用Guava库的concat() 方法

Guava 是一个著名的 Java 工具库,它提供了丰富的集合操作方法。Guava 的 Lists 类提供了一个 concat() 方法,可以合并多个列表。

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> list3 = new ArrayList<>(Arrays.asList(7, 8, 9));

List<Integer> mergedList = Lists.concat(list1, list2, list3);

在上面的代码示例中,我们使用 Guava 的 Lists.concat() 方法将所有列表合并成一个新的列表。需要注意的是,使用该方法合并的列表是不可变的,即无法对其进行修改。

4. 使用Java 8 的 reduce() 方法

Java 8 的 Stream API 还提供了一个 reduce() 方法,它可以将一个列表集合中的所有元素合并成一个单独的值。我们可以使用 reduce() 方法将多个列表合并成一个列表。

List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3));
List<Integer> list2 = new ArrayList<>(Arrays.asList(4, 5, 6));
List<Integer> list3 = new ArrayList<>(Arrays.asList(7, 8, 9));

List<Integer> mergedList = Stream.of(list1, list2, list3)
                .reduce(new ArrayList<>(), (a, b) -> { a.addAll(b); return a; });

在上面的代码示例中,我们首先创建一个空的列表作为初始值,并通过 reduce() 方法将每个列表逐个合并到初始列表中。

总结

本文介绍了几种常见的合并多个 List 集合的方法:使用 addAll() 方法、使用 Stream API 的 flatMap() 方法、使用 Guava 的 concat() 方法以及使用 Java 8 的 reduce() 方法。根据实际需求选择合适的方法进行列表合并操作,可以提高代码的可读性和效率。

希望本文对您在 Java 开发中合并多个列表集合有所帮助!

pie
    title 合并多个 List 集合方法分布
    "addAll()" : 40
    "Stream API" : 30