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

用VAVR将地图列表转换为单个地图

李奕
2023-03-14

我正在努力使用Vavr将映射列表减少为一个映射

<List<Map<String, Object>>>
<Map<String, Object>>

有人能提供如何使用io.vavr.collection.list/io.vavr.collection.map示例吗?

共有1个答案

吴欣然
2023-03-14

我不知道vavr和这有什么关系。

list.stream()                             // A
  .flatMap(map -> map.entrySet().stream()) // B
  .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

[A]现在您有了映射 的流。

[B]现在您有了一个地图条目流。现在您有了一个键/值对流。

然后通过提供从map.entry对象提取键的函数和提取值的函数,将它们收集到一个映射中。

请注意,如果您有一个类型为map 的映射,我认为您有99%的几率做错了什么。毕竟,Java是名义上的、静态的和强类型的。

 类似资料:
  • 我有这样一个代码: 你能帮我完成代码库吗?

  • 问题内容: 最近我谈话有什么将要转换的最佳方式是同事,以在Java中,如果有这样做的任何特殊利益。 我想知道最佳转换方法,如果有人可以指导我,我将不胜感激。 这是个好方法吗? 问题答案: 当然,假设每个Item都有一个返回正确类型的键的方法。

  • 我知道我应该使用函数,但我不知道如何使用,也没有看到它的任何示例。

  • 问题内容: 我想将 每个地图条目转换为-列表中的1个条目作为“键-值” 我搜索了,只发现将值仅映射到List。 我希望将此映射到列表为 等等。 如果我使用foreach,可以很容易地做到这一点,但是我想知道通过流获取它是否可行 问题答案:

  • 假设我有一个多映射,如下所示: 第一个步骤是将字符串拆分为一个数组,因为最初它是一个逗号分隔的字符串。然后,我找到任何值中的最大元素数,循环该次数的条目中的所有值,并用结果为每个值创建一个映射。坦率地说,我上周五写了这段代码,但我已经不能正确地阅读它... 所以,一开始这是一件简单的事情,但我最终陷入了混乱,有没有更好的方法来做这件事? 提前谢了。

  • 问题内容: 我需要将Java转换为的实例(包括地图内容) 我应该怎么做才能使此代码可编译? 问题答案: 从Collectors.toMap(…)javadoc: 例如: