首页 > 解决方案 > JAVA Stream API 使用

问题描述

我有一个用户实体

class User{
private String id; 
private String email;
private String name;
private int age :
... etc
}

我只想检索 User 类的一些属性并制作地图列表。

如何使用 Java 8 流来做到这一点?

换句话说,我想这样做

Stream <User> s = List <User> users.stream();
// only retrive email and name attribute from user and make a map using JAVA 8 Stream

返回类型应该List <Map <String, String>>如下所示

{
 {
   "name" : "a",
   "email" : "aa@aa.com"
},
{
   "name" : "b",
   "email " : "bb@bb.com"

}
}

标签: java

解决方案


你可以Stream.map()这样使用:

List<Map<String,String>> result=users.stream().map(user->{
            Map<String,String> map=new HashMap<>();
            map.put("name",user.getName());
            map.put("email",user.getEmail());
            return map;
        }).collect(Collectors.toList());

Stream.map() 可用于将您的流对象映射到您想要的任何内容。


推荐阅读