java - 使用 Stream 将 List 中的字段合并到 Java 中的新 List
问题描述
我有一个这样的列表
List<Employee>emp = Arrays.asList(new Employee("Jack", 29), new Employee("Tom", 24));
class Employee {
private String name;
private Integer id;
}
我想插入员工全名列表如下:
List<Employee>empFullName = Arrays.asList(new Employee("Jack Tom", 29));
class EmployeeFullName {
private String fullName;
private Integer id;
}
合并名称后,如何将 Employee 中的名称字段合并到 Employee List 中的 fullName?我想使用 Java 8 作为解决方案。
解决方案
尽管之前的评论者已经发布了所有合理的问题,但在我看来,您的主要问题归结为“如何从流中获取成对的对象”。
一旦你将对象配对成一个新的集合(或流)对,你就可以对它们做任何你想做的事情(即用它们制作一个新对象)。
您仍然必须决定如何“合并”这些对。在您的情况下,您似乎正在使用“名称”并将它们连接在一起,以生成一个完整的名称。而且您使用的是左侧 ID。这仍然让人想知道右侧 ID 发生了什么,但也许对于您的真实数据集,它在功能上是重复的......?即便如此,还是值得做一个程序化的 Assert 来确保你流出的 Pairs 以这种方式是一致的。否则,您的流中缺少一个元素,您将把各种随机用户捆绑在一起......
推荐阅读
- mysql - cronjob java.sql.SQLException 上的错误:参数索引超出范围(1 > 参数数量,即 0)
- three.js - A-Frame / THREE.js,无纹理简化 gltf[glb] 模型
- python - 这些 Numpy 数组创建函数之间有什么区别?
- java - 我如何从一个类中捕获数据并将其传递给所有类
- reactjs - 更改输入字段时,如何在 REACT 中更新段落标签?
- apache-kafka - Kafka 压缩主题,重新发布已删除的密钥
- angular5 - 在 Angular 5 中处理 HTTP 状态码
- reactjs - 无法使用模拟输入酶测试 maxLength
- com - 在 Windows 7 中,使用本地系统帐户的 Windows 服务使用 CreateProcessAsUser 启动的进程崩溃
- javascript - 如何使用 GET 方法将数据发送到另一个域?