合并多个List可通过addAll、Stream API或Guava库实现;2. addAll最直接,适合简单合并;3. Stream.concat或flatMap适用于Java 8+,代码简洁且支持多个List;4. Guava的Iterables.concat适合引入第三方库的项目。

在Java中合并多个List集合有多种方式,根据不同的需求和使用场景可以选择合适的方法。下面介绍几种常见且实用的合并方式。
使用addAll方法
addAll 是最直接的方式,适用于合并两个或多个List。它会将一个List中的所有元素添加到另一个List中。
示例:
List<String> list1 = new ArrayList<>(Arrays.asList("a", "b"));List<String> list2 = new ArrayList<>(Arrays.asList("c", "d"));
List<String> result = new ArrayList<>();
result.addAll(list1);
result.addAll(list2);
// result = ["a", "b", "c", "d"]
注意:如果原List需要保留,应创建新的List来接收结果,避免修改原始数据。
立即学习“Java免费学习笔记(深入)”;
使用Stream API(Java 8+)
当需要合并多个List并希望代码更简洁时,可以使用 Stream.concat 或 flatMap。
示例1:使用concat合并两个List
List<String> result = Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList());
示例2:合并多个List(三个及以上)
List<String> list3 = Arrays.asList("e", "f");List<String> result = Stream.of(list1, list2, list3)
.flatMap(Collection::stream)
.collect(Collectors.toList());
这种方式更灵活,尤其适合动态数量的List合并。
使用第三方库(如Guava)
如果你的项目中引入了Guava,可以使用 Iterables.concat 方法。
List<String> combined = Lists.newArrayList(Iterables.concat(list1, list2, list3)
);
Guava提供了更丰富的集合操作工具,适合复杂场景。
基本上就这些常用方法。选择哪种取决于你的Java版本、性能要求以及是否使用额外依赖。对于简单场景,addAll足够;对于函数式风格,推荐Stream方式。










