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

拉姆达

夹谷斌蔚
2023-03-14

我想用这条流绘制一张地图

我试过很多方法,但都失败了。下面是使用Stream/Lambda和classic循环实现这一点的经典Java代码

Map<Entity, List<Funder>> initMap = new HashMap<>();
List<Entity> entities = pprsToBeApproved.stream()
    .map(fr -> fr.getBuyerIdentification().getBuyer().getEntity())
    .distinct()
    .collect(Collectors.toList());

for(Entity entity : entities) {
    List<Funder> funders = pprsToBeApproved.stream()
        .filter(fr -> fr.getBuyerIdentification().getBuyer().getEntity().equals(entity))
        .map(fr -> fr.getDocuments().get(0).getFunder())
        .distinct()
        .collect(Collectors.toList());
    initMap.put(entity, funders);
        }

正如你所看到的,我只知道如何在列表中收集信息,但我就是不能在地图上做同样的事情。这就是为什么我必须再次流式处理我的列表,以构建第二个列表,最终将所有内容放在一张地图中。我也试过“收集”。groupingBy语句,因为它也应该生成一张地图,但我失败了。

共有1个答案

林星华
2023-03-14

您似乎想将pprstobapproved列表中的任何内容映射到您的Funder实例,按买家实体对它们进行分组。

您可以按如下方式操作:

Map<Entity, List<Funder>> initMap = pprsToBeApproved.stream()
    .collect(Collectors.groupingBy(
        fr -> fr.getBuyerIdentification().getBuyer().getEntity(), // group by this
        Collectors.mapping(
            fr -> fr.getDocuments().get(0).getFunder(), // mapping each element to this
            Collectors.toList())));                     // and putting them in a list

如果您不想为特定实体重复资助者,您可以将其收集到集合映射中:

Map<Entity, Set<Funder>> initMap = pprsToBeApproved.stream()
    .collect(Collectors.groupingBy(
        fr -> fr.getBuyerIdentification().getBuyer().getEntity(),
        Collectors.mapping(
            fr -> fr.getDocuments().get(0).getFunder(),
            Collectors.toSet())));

这将使用收集器。按收集器分组。映射

 类似资料:
  • 我正在使用joomla 3.0,并在其中创建了一个组件。现在SEF url有一个问题。 在我的组件中,我实现了MVC结构。我的视图结构类似于view/Name/tmpl/default。php 我的非SEF网址是:index.php?option=componentName 当我尝试使用路由器创建SEF url时。php文件,然后它将创建URL索引。php/组件/组件名称/视图名称/默认值?布局=

  • 在Lagom开发环境中,使用lagomKafkaStart启动Kafka后 有时它会显示KafkaServer意外关闭,之后我需要运行clean命令才能再次使其运行。 请建议这是预期的行为。

  • 1. HMM模型参数求解概述 HMM模型参数求解根据已知的条件可以分为两种情况。 第一种情况较为简单,就是我们已知D个长度为T的观测序列和对应的隐藏状态序列,即$${(O_1, I_1), (O_2, I_2), ...(O_D, I_D)}$$是已知的,此时我们可以很容易的用最大似然来求解模型参数。 假设样本从隐藏状态$$q_i$$转移到$$q_j$$的频率计数是$$A_{ij}$$,那么状态转

  • 在我用Cython编译破坏了我的Ubuntu precise之后,我喜欢保持系统Python的整洁。我喜欢2.7.x的 所以我试着用~/使用PyCharm中的pyenv全局解释器。pyenv/bin/python-local-exec,它可以工作,但不幸的是已经被弃用了。当我试图从pyenv Python 3全局解释器创建virtualenv时,它抛出了以下错误: 如前所述,我不想将Python

  • 主要内容:普里姆算法的具体实现了解了什么是 最小生成树后,本节为您讲解如何用普里姆(prim)算法查找连通网(带权的连通图)中的最小生成树。 普里姆算法查找最小生成树的过程,采用了贪心算法的思想。对于包含 N 个顶点的连通网,普里姆算法每次从连通网中找出一个权值最小的边,这样的操作重复 N-1 次,由 N-1 条权值最小的边组成的生成树就是最小生成树。 那么,如何找出 N-1 条权值最小的边呢?普里姆算法的实现思路是: 将连通

  • 概述 100 mm铝制麦克纳姆轮组(2 x左,2 x右)包括2个右车轮和2个左车轮。每个车轮由9个滚轮组成,可以独立驱动。麦克纳姆轮让你的机器人不仅可以前后移动,而且可以左右平移。有了4个麦克纳姆轮,你就可以造出一辆可以向各个方向移动的汽车/机器人。该组件的每个轮子都配有一个兼容安装轮毂4mm轴连接器,因此它很容易与我们的编码器电机或步进电机配合。 产品特性 麦克纳姆轮允许机器人实现全方位运动,同