环境
idea, java8
方法
1. 使用addAll()
方法
想简单地想要合并List,直接使用List
的addAll()
方法是最直接的方式。
List<YourType> list1 = new ArrayList<>();
List<YourType> list2 = new ArrayList<>();
// 假设list1和list2已经有了数据
List<YourType> mergedList = new ArrayList<>(list1); // 使用list1初始化mergedList
mergedList.addAll(list2); // 将list2中的所有元素添加到mergedList中
// 如果还有更多List要合并
List<YourType> list3 = new ArrayList<>();
// 假设list3也有数据
mergedList.addAll(list3);
2. 使用Java 8的Stream API
使用函数式编程的方式,可以使用Java 8引入的Stream API。这对于处理集合非常强大和灵活。
List<YourType> list1 = new ArrayList<>();
List<YourType> list2 = new ArrayList<>();
// 假设list1和list2已经有了数据
List<YourType> mergedList = Stream.concat(list1.stream(), list2.stream())
.collect(Collectors.toList());
// 如果还有更多List要合并
List<YourType> list3 = new ArrayList<>();
// 假设list3也数据
mergedList = Stream.concat(mergedList.stream(), list3.stream())
.collect(Collectors.toList());
3. 使用Apache Commons Collections
如果你的项目中已经包含了Apache Commons Collections库,那么你可以使用CollectionUtils.union()
方法来合并List,但这会返回一个新的集合,而不是修改现有的List。
List<YourType> list1 = new ArrayList<>();
List<YourType> list2 = new ArrayList<>();
// 假设list1和list2已经有数据
List<YourType> mergedList = (List<YourType>) CollectionUtils.union(list1, list2);
// 注意:CollectionUtils.union()的返回值是Collection类型,所以你可能需要强制类型转换
但请注意,CollectionUtils.union()
可能不适用于需要合并多个List的情况,因为它只接受两个集合作为参数。