java - 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"
}
}
解决方案
你可以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() 可用于将您的流对象映射到您想要的任何内容。
推荐阅读
- python - 为什么这会给出字符串索引错误
- angular - Chart.js 大数据集抽取 Angular TypeScript
- android - Firebase 云消息传递通知图像定价
- python - 是否可以使用跨语言平台的 System V 共享内存在 4 字节 int 上实现无锁原子写入/一致读取操作?
- java-8 - 为 MethodReference java 推断出不同的返回值
- javascript - 当祖父状态更新时,反应列表元素在孙子组件中消失。警告:列表中的每个孩子都应该有一个唯一的“键”
- redux - EasyPeasy 存储钩子会在任何状态更改时导致重新渲染
- ruby-on-rails - 为什么在请求测试中不使用 ActiveJob InlineAdapter?
- spring-webflux - webflux 中的事务与阻塞 spring 数据
- javascript - 如何防止 Bootstrap 4 下拉菜单在输入元素点击时显示?