had*_*des 1 lambda java-8 java-stream
我有2个对象列表:
List<User>
List<UserResource>
Run Code Online (Sandbox Code Playgroud)
对于User类:
public class User {
private int id;
private String name;
private String address;
**SETTERS & GETTERS**
}
Run Code Online (Sandbox Code Playgroud)
对于UserResource类:
public class UserResource {
private String name;
private String address;
**SETTERS & GETTERS**
}
Run Code Online (Sandbox Code Playgroud)
我List<User>有数据,我想映射值中name和address到UserResource的name和address,用java 8个流和lambda,但我不知道该怎么做.
在线搜索相当一段时间,但无法找到类似的问题.就像是:
List<User> users = **data inserted**
List<UserResource> resources = users.forEach(u ->{
u.setName(users.getName());
u.setAddress(users.getAddress());
});
Run Code Online (Sandbox Code Playgroud)
我试过像下面这样的东西,但我不使用构造函数,不确定如何解决它.
List<UserResource> userResources = users.stream().map(u -> new UserResource(u.getName(), u.getAddress())).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
你的编辑在逻辑上是正确的,我假设你想通过setter来做,在这种情况下定义一个lambda体并在那里执行操作......
.map(u -> {
UserResource ur = new UserResource();
ur.setName(u.getName());
ur.setAddress(u.getAddress());
return ur;
}).collect(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
514 次 |
| 最近记录: |