首页 > 解决方案 > 使用 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 作为解决方案。

标签: javajava-8

解决方案


尽管之前的评论者已经发布了所有合理的问题,但在我看来,您的主要问题归结为“如何从流中获取成对的对象”。

一旦你将对象配对成一个新的集合(或流)对,你就可以对它们做任何你想做的事情(即用它们制作一个新对象)。

从流中收集连续对

您仍然必须决定如何“合并”这些对。在您的情况下,您似乎正在使用“名称”并将它们连接在一起,以生成一个完整的名称。而且您使用的是左侧 ID。这仍然让人想知道右侧 ID 发生了什么,但也许对于您的真实数据集,它在功能上是重复的......?即便如此,还是值得做一个程序化的 Assert 来确保你流出的 Pairs 以这种方式是一致的。否则,您的流中缺少一个元素,您将把各种随机用户捆绑在一起......


推荐阅读