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合并多个对象列表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Springboot使用Spring Data JPA实现数据库操作
Spring Data JPA 是 Spring 基于 Spring Data 框架、在JPA 规范的基础上开发的一个框架,使用 Spring Data JPA 可以极大地简化JPA 的写法,本章我们将详细介绍在Springboot中使用 Spring Data JPA 来实现对数据库的操作2021-06-06Spring Cloud使用Feign实现Form表单提交的示例
本篇文章主要介绍了Spring Cloud使用Feign实现Form表单提交的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-03-03JDK1.6“新“特性Instrumentation之JavaAgent(推荐)
这篇文章主要介绍了JDK1.6“新“特性Instrumentation之JavaAgent,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-08-08IntelliJ IDEA安装scala插件并创建scala工程的步骤详细教程
这篇文章主要介绍了IntelliJ IDEA安装scala插件并创建scala工程的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07解决问题:Failed to execute goal org.apache.m
这篇文章主要给大家介绍了关于解决问题:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources的相关资料,文中将解决的办法介绍的非常详细,需要的朋友可以参考下2023-03-03
最新评论