Java:使用流将List <Object>转换为另一个List <anotherObject>

去:

我有以下问题。我熟悉使用Java 7进行以下操作的传统方法,但是尝试使用java8流或forEach实现此操作,以提高可读性和减少代码行。

目的:

 public class Object {
   private String id;
   private String userName;
   private String address;
   private String email;
 //getters and setters
}

现在,我有一个如下的对象列表:

List<Object> list = new ArrayList<>();
Object obj = new Object();
obj.setId(12);
obj.setUserName("myName");
obj.setAddress("address");
obj.setEmail("email");

Object obj1 = new Object();
obj1.setId(12);
obj1.setUserName("myName1");
obj1.setAddress("address1");
obj1.setEmail("email1");
list.add(obj);
list.add(obj1);

我还有另一个对象用户:

public class User {
      private String userName;
       private String address;
       private String email;
   //getters and setters
}

ResultObject:

public class ResultObject{
     private String id;
     private List<User> user;
   //getters and setters
}

现在,对于列表中的每个对象,我想通过id对它们进行分组,并将相应的电子邮件,地址和用户名保存在User Object中,最后想要一个ID已映射到同一ID下的用户列表的List。

因此,上述示例的ResultObject应该类似于:

id=12
List<User> = {["myname","address","email"],["myname1","address1","email1"]}

任何想法表示赞赏。TIA。

名称:

您可以将sample的Collectors.mappingwith groupingBy和(Sample而不是Object一起使用以获取List<User>id它们关联的的中间状态,并且它们将每个此类条目映射为ResultObjectas:

List<ResultObject> resultObjects = samples.stream()
        .collect(Collectors.groupingBy(Sample::getId,
                Collectors.mapping(a -> new User(a.getUserName(), a.getAddress(), a.getEmail()),
                        Collectors.toList())))
        .entrySet().stream()
        .map(e -> new ResultObject(e.getKey(), e.getValue()))
        .collect(Collectors.toList());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Java 8流从List <Object>,List <Object>转换为List <AnotherObject>

转换一个列表<SomeObject> toList <AnotherObject>在Java 8

Java中的游戏优化,涉及将ArrayList <Object>元素强制转换为for循环内的另一个变量

将List <T>转换为包含另一个List <T>的另一个List <T>

如何通过某些属性将 List<Object> 分组到另一个 List<Object>

使用Java 8流API将List <Map <String,Object >>转换为Map <String,List <Map <String,Object >>>

如何将 VARIANT 变量从一个子程序传递和转换为另一个子程序中的 OBJECT 变量?

使用Java 8流API将地图转换为另一个地图

类内ArrayList <anotherObject>内的ArrayList <object>

Java流:将一个对象的列表转换为另一个

Java8:使用流将一个地图转换为另一个地图

如何在Django中使用ListView获取另一个用户的object_list?

Java流-将流结果从一个对象转换为另一个

使用Java流API将Map <Integer,List <Object >>转换为Map <Integer,Map <String,Map <LocalDate,Integer >>>

在 C# 中将另一个列表中的列表转换为 list<string>

基于 List<Object> 创建 Map<Key,Object> - 将循环转换为 Java 流

使用流将列表转换为另一个列表

将XML转换为另一个XML

将张量转换为另一个

将字典结构转换为另一个

给定另一个将A转换为List [B]的流程,该流程将通过平展将List [A]转换为List [B]

使用XSLT将一个JAXB对象转换为另一个

使用选定元素将一个 case 类转换为另一个

将List <T>转换为另一个列表中所有对象的逗号分隔值列表

将 Dictionary<string, Dictionary<string, string>> 转换为另一个 List< Dictionary<string, string>>

将List <HashMap <String,Object >>转换为流

如何使用OOP将$ db从另一个.php转换为另一个.php的类?

Map.getValue() 在某个时间返回一个 List,另一个时间返回一个 Object

在 Java Springboot 中使用另一个图像将文本转换为图像