英文:
JAVA Stream API usage
问题
以下是翻译好的部分:
我有一个User实体类
class User{
private String id;
private String email;
private String name;
private int age;
... 等等
}
我想只检索User类的一些属性并创建一个映射列表。
如何使用Java 8流来实现这个?
换句话说,我想要做到这一点
```java
Stream<User> s = users.stream();
// 仅从用户中检索电子邮件和姓名属性,并使用JAVA 8流创建映射
返回类型应该是List<Map<String, String>>
,并且如下所示
{
{
"name" : "a",
"email" : "aa@aa.com"
},
{
"name" : "b",
"email" : "bb@bb.com"
}
}
希望这对你有所帮助!
<details>
<summary>英文:</summary>
I have a User entity
class User{
private String id;
private String email;
private String name;
private int age :
... etc
}
I want to only retrieve some attributes of the User class and make a list of map.
How can I do this using Java 8 stream?
In other words I want to do this
Stream <User> s = List <User> users.stream();
// only retrive email and name attribute from user and make a map using JAVA 8 Stream
return type should be `List <Map <String, String>>` and look like below
{
{
"name" : "a",
"email" : "aa@aa.com"
},
{
"name" : "b",
"email " : "bb@bb.com"
}
}
</details>
# 答案1
**得分**: 2
你可以像这样使用 `Stream.map()`:
```java
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()
可以用于将你的流对象映射到任何你想要的内容。
英文:
You can use Stream.map()
like this:
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() can be used to map your stream object to anything you want.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论