Java多种方法实现合并多个list对象列表
在 Java 中,将多个对象的列表数据合并成一个新的列表可以通过多种方式实现。假设有一个 List 的列表,每个列表都包含相同类型的对象,可以使用 Stream API 或传统的循环来实现这一目标。
示例代码User 类
假设我们有一个 User 类:
public class User {
private String name;
private int age;
public User(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User{name='" + name + "', age=" + age + "}";
}
}使用 Stream API
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class MergeListsExample {
public static void main(String[] args) {
List<User> list1 = Arrays.asList(
new User("Alice", 30),
new User("Bob", 25)
);
List<User> list2 = Arrays.asList(
new User("Charlie", 35),
new User("Diana", 28)
);
List<User> list3 = Arrays.asList(
new User("Eve", 22),
new User("Frank", 31)
);
List<List<User>> listOfLists = Arrays.asList(list1, list2, list3);
// 使用 Stream API 合并列表
List<User> mergedList = listOfLists.stream()
.flatMap(List::stream)
.collect(Collectors.toList());
// 输出合并后的列表
mergedList.forEach(System.out::println);
}
}使用传统循环
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class MergeListsExample {
public static void main(String[] args) {
List<User> list1 = Arrays.asList(
new User("Alice", 30),
new User("Bob", 25)
);
List<User> list2 = Arrays.asList(
new User("Charlie", 35),
new User("Diana", 28)
);
List<User> list3 = Arrays.asList(
new User("Eve", 22),
new User("Frank", 31)
);
List<List<User>> listOfLists = Arrays.asList(list1, list2, list3);
// 使用传统循环合并列表
List<User> mergedList = new ArrayList<>();
for (List<User> list : listOfLists) {
mergedList.addAll(list);
}
// 输出合并后的列表
mergedList.forEach(System.out::println);
}
}解释
定义 User 类:
User类包含name和age属性,并提供相应的 getter 和 setter 方法。- 重写了
toString方法以便于输出。
创建多个 List:
- 创建了三个
List<User>对象,每个列表包含几个User对象。
使用 Stream API 合并列表:
listOfLists.stream():将List<List<User>>转换为Stream<List<User>>。flatMap(List::stream):将每个List<User>转换为Stream<User>,并将其展平为一个单一的Stream<User>。collect(Collectors.toList()):将Stream<User>收集为一个List<User>。
使用传统循环合并列表:
- 创建一个空的
ArrayList<User>用于存储合并后的数据。 - 遍历
listOfLists,将每个子列表中的元素添加到mergedList中。
输出
无论使用 Stream API 还是传统循环,最终的输出都是相同的:
User{name='Alice', age=30}
User{name='Bob', age=25}
User{name='Charlie', age=35}
User{name='Diana', age=28}
User{name='Eve', age=22}
User{name='Frank', age=31}总结
在Java编程中,合并多个列表对象可以通过Stream API或传统循环方式实现,使用Stream API进行合并时,可利用flatMap方法将嵌套的List展平,再通过collect方法收集成一个新的列表,传统循环则通过创建一个空的ArrayList,并通过遍历每个列表将元素添加进去,两种方法都能有效合并列表,并保持数据类型一致。
到此这篇关于Java多种方法实现合并多个对象列表的文章就介绍到这了,更多相关Java合并多个对象列表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
IntelliJ IDEA下Maven创建Scala项目的方法步骤
这篇文章主要介绍了IntelliJ IDEA下Maven创建Scala项目的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-06-06
Spring Cloud Alibaba Nacos Config配置中心实现
这篇文章主要介绍了Spring Cloud Alibaba Nacos Config配置中心实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-04-04
SpringBoot应用监控Actuator使用隐患及解决方案
SpringBoot的Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用,本文将给大家介绍SpringBoot应用监控Actuator使用隐患及解决方案,需要的朋友可以参考下2024-07-07
关于IDEA使用jsp可以访问页面转换为html弹出页面为404的问题
这篇文章主要介绍了关于IDEA使用jsp可以访问页面转换为html弹出页面为404的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-12-12


最新评论