当前位置: 首页 > 知识库问答 >
问题:

如何使用java8在springboot中映射多个列表

竺承望
2023-03-14

我已经为这些列表创建了模型类,这些列表是我收到的对我的服务的响应

清单1

public class UserProfile {
private String userId;
private String userName;
private String address;
}

清单2

public class UserDetail {
private String userLabel;
private String totalUsers;
}

列表3是最后的列表,上面两个列表映射的结果,即我的服务的响应

清单3

public class Response {
private String userId;
private String userName;
private String address;
private String totalUsers;
}

这些列表与用户名和用户标签相连。我已将列表1的所有值映射到列表3。现在对于列表2,我需要检查每个userLabel是否在list3中存在一个userName等于userLabel的对象,如果为true,则totalUsers的值设置为list3的那个对象。

共有1个答案

屈昊天
2023-03-14

您可能需要创建一个映射

例如:

Map<String, String> userDetails = list2.stream().collect(Collectors.toMap(UserDetail::getUserLabel, UserDetail::getTotalUsers));

return list1.stream()
  .map(elem -> new Response(elem.getUserId(), elem.getUsername(), elem.getAddress(), userDetails.get(elem.getUsername()))
  .collect(Collectors.toList());

 类似资料:
  • 我刚刚开始看Java8,为了尝试lambdas,我想我应该尝试重写我最近写的一个非常简单的东西。我需要将一个字符串到列的映射转换为另一个字符串到列的映射,其中新映射中的列是第一个映射中列的防御副本。列具有复制构造函数。到目前为止我得到的最接近的数据是: 但我相信一定有更好的方法来做这件事,我会很感激一些建议。

  • 我有两份清单: 列表1: Object1(name1, id1) 列表2: Object2(name2, id2) 给定list1的大小与list2相同 我想迭代list2,如果list2的name2不为null,则更新list1的name1。 以下是使用旧java的代码: 用java实现这一点的最佳方法是什么。util。流动

  • 问题内容: 我有三个类User,Order和Project,它们存储在单个表中。订单和项目都与用户具有:n关系。为了实现这一点,我有两个映射这些关系的交叉表(UserOrders,UserProjects)。 如您所见,User对象包含每个相关的orderID / projectID的列表。 现在,我想用Dapper进行查询。我有这个解决方案,可以很好地处理 一个 列表。但是,如果我尝试为第二个列

  • 问题内容: 我想使用链接表在Hibernate中映射多对多。我有两个类,例如Parent和Child类: 我用三列的链接表(link_table) ,和。该数据库是SQL Server,并且ID类型是uniqueidentifier。因此,我通常将guid用于id字段。 你怎么能实现这个使用 标签,如果这是要使用正确的标签?您知道有什么好的文档可以做到这一点吗? 我目前正在获取Constraint

  • 我正在寻找第一次到流API的Java8。我尝试创建一个筛选器来从映射中删除元素。

  • 问题内容: 我想为该外观创建一个映射: 在ElasticSearch文档中,我看到了以下示例: 但是,现在我很困惑。我希望看到的是: 那么,为什么该示例仅提供对另一个索引的引用?如何定义“标签”索引?或者,何时使用该数组映射? 问题答案: 因此,ElasticSearch无需指定映射为数组。您可以使用方括号将任何映射视为数组: 请参阅页面上的最后一句话: 当然,我们可以将字段命名为标签,并一起跳过