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

Stream GroupingBy:缩减到列表的第一个元素[duplicate]

蒋俊人
2023-03-14

[{codice=欧元,description=欧元,ratio=1},{codice=美元,description=美元,ratio=1.1}]

我想在map 中转换它,如下所示:

{EUR={codice=欧元,description=欧元,ratio=1},USD={codice=美元,description=美元,ratio=1.1}}

getValute().stream().collect(Collectors.groupingBy(Valuta::getCodice));

但这返回一个map > 而不是我需要的。

我想mapping()函数会对我起作用,但不知道如何起作用。

共有1个答案

季华茂
2023-03-14

实际上,您需要在这里使用collectors.tomap而不是collectors.groupingby:

Map<String, Valuta> map = 
    getValute().stream()
               .collect(Collectors.toMap(Valuta::getCodice, Function.identity()));

groupingby用于根据分组函数对流的元素进行分组。默认情况下,具有与分组函数相同结果的2个流元素将被收集到列表中。

tomap将元素收集到map中,其中键是应用给定键映射器的结果,值是应用值映射器的结果。请注意,tomap默认情况下,如果遇到重复项,将引发异常。

 类似资料:
  • 问题内容: 如何以简洁明了的方式找出两个列表中的第一个公共元素(在本例中为“ 2”)?任何列表都可以为空,也可以没有公共元素-在这种情况下,没有一个很好。 我需要它来向新手展示python,所以越简单越好。 UPD:顺序对于我的目的并不重要,但让我们假设我正在寻找x中的第一个元素,该元素也出现在y中。 问题答案: 这应该很简单 几乎和它一样有效 (要获得更有效的解决方案,请检查Ashwini Ch

  • 假设我有一个这样的列表: 我想要一个只包含嵌套列表的第一个元素的列表。我可以通过这样返回另一个列表来做到这一点 这个有捷径符号吗?

  • 问题内容: 我是AngularJS的初学者,目前我正在Django中开发一个Web应用程序,在该应用程序中我可以使用AngularJS作为前端部分。我的问题是,用作用域中的对象填充的下拉列表始终以空白元素开头(如果我从列表中选择一个,该问题就不存在了)。这会产生问题,因为如果用户不选择任何内容,那么POST请求通常将不再起作用。我想知道如何拥有类似预选值或类似的东西。这是我的代码的一部分: 选择标

  • 问题内容: 我有一个像下面这样的列表,其中第一个元素是id,另一个是字符串: 我只想从此元组列表创建ID列表,如下所示: 我将使用此列表,因此它必须是整数值的列表。 问题答案:

  • 如何移除第一个数组但返回减去第一个元素的数组 在我的示例中,当删除第一个元素时,我应该得到

  • 问题内容: 给出以下列表: 我想将[a]的每个元素重复其在[b]中的对应位置的编号,以产生此结果: 即0发生1次,5发生2次,1发生1次。 问题答案: 内容如下: -重复elem次 从两个列表中组成一个2元组的列表,将每个元素与另一个列表中的对应元素配对。这为您提供了用例中需要传递给的确切信息。 -将迭代器的结果列表展平为单个值列表。您既可以像我一样,也可以像马丁·彼得斯那样。