操作列表以返回地图

问题描述 投票:0回答:1

目标: List<User>每个用户dto我只想返回idname

格式应为:

[
 {
  "id": 1,
  "name": "ruben"
 },
 {
  "id": 2,
  "name": null
 }
] 

我的尝试:

List<Users> userList = null;
    Map<String, String> resultMap=new HashMap<>();
    try {
        userList = userRepository.findAllUserTitle();
        userList.parallelStream().forEach(p->{

            resultMap.put("id", String.valueOf(p.getId()));
            resultMap.put("title", p.getTitle());
        });

[注:是否可以使用流平面图或任何其他解决方案来实现此目的,请提供,我也不想创建任何其他dto。

java-8 stream
1个回答
0
投票

当前,您为每个用户使用相同的地图。

使用List<Map<String, String>>,其中Map<String, String>代表每个用户idname数据

List<Map<String, String>> result=new ArrayList<>(); // Create a list of map for result
List<Users> userList= userRepository.findAllUserTitle();
userList.parallelStream().forEach(p->{
    Map<String, String> resultMap=new HashMap<>();
    resultMap.put("id", String.valueOf(p.getId()));
    resultMap.put("title", p.getTitle());
    result.add(resultMap); // for every user info map add in list.
});
© www.soinside.com 2019 - 2024. All rights reserved.