如何使用第一个映射中的键和合并的值将两个映射合并为一个映射?

2023-12-03

如何从两个地图地图创建一个新地图,以便生成的地图仅包含键相同的匹配项并合并内部地图。

Iterable[Map[String, Map[String,Float]]

Example:

val map1 = Iterable(Map(
  1 -> Map(key1 -> val1), 
  2 -> Map(key2 -> val2), 
  3 -> Map(key3 -> val3)
))

val map2 = Iterable(Map(
  1 -> Map(key11 -> val11), 
  3 -> Map(key33 -> val33), 
  4 -> Map(key44 -> val44), 
  5 -> Map(key55 -> val55)
))

我希望生成的地图如下:

Map(
  1 -> Map(key1 -> val1, key11 -> val11), 
  3 -> Map(key3 -> val3, key33 -> val33)
)

更新:我不太明白你的编辑内容Iterables 意味着,或者您评论中的错误,但这里有一个完整的工作示例Strings and Floats:

val map1: Map[Int, Map[String, Float]] = Map(
  1 -> Map("key1" -> 1.0F),
  2 -> Map("key2" -> 2.0F),
  3 -> Map("key3" -> 3.0F))

val map2: Map[Int, Map[String, Float]] = Map(
  1 -> Map("key11" -> 11.0F),
  3 -> Map("key33" -> 33.0F), 
  4 -> Map("key44" -> 44.0F),      
  5 -> Map("key55" -> 55.0F))

val map3: Map[Int, Map[String, Float]] = for {
  (k, v1) <- map1
  v2 <- map2.get(k)
} yield (k, v1 ++ v2)

更新以回答您的以下问题:拥有一个地图列表没有多大意义,每个地图都包含一个映射。您可以使用以下命令轻松地将它们组合成一张地图reduceLeft:

val maps = List(
  Map(1216 -> Map("key1" -> 144.0F)),
  Map(1254 -> Map("key2" -> 144.0F)),
  Map(1359 -> Map("key3" -> 144.0F))
)

val bigMap = maps.reduceLeft(_ ++ _)

现在你有了一张大的整数映射到字符串到浮点数的映射,你可以将其插入到我上面的答案中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用第一个映射中的键和合并的值将两个映射合并为一个映射? 的相关文章

随机推荐

  • Android“无法添加窗口 - 令牌 null 不适用于应用程序”异常

    当我尝试打开对话框时 出现以下 Android 异常 有人可以帮助我了解发生了什么事以及如何解决这个问题吗 android view WindowManager BadTokenException Unable to add window
  • 如何将每个换行符转换/替换为“
    ”?

    set tabstop 4 set shiftwidth 4 set nu set ai syntax on filetype plugin indent on 我试过这个 content gsub r n br 但是当我单击视图 显示按钮
  • 将日期字符串转换为不同的格式

    我有一个包含格式为日期的字符串YYYY MM DD 您建议我如何将其转换为格式DD MM YYYY以最好的方式 这就是我天真的做法 import java util public class test public static void
  • 在 grid.arrange 中保留或设置文本标签与绘图大小之间的比例

    我正在尝试安排使用创建的 2 个图ggplot2并希望这些图的大小为正方形 并且一个挨着另一个 旁边有共同的图例 以便图像非常适合纵向风格的页面 问题是当我使用grid arrange为了安排格罗布 标签和图例变得很小 而情节空间却很大 g
  • JFormattedTextField 格式化百分比数字?

    我想使用 JFormattedTextField 将浮点数格式化为百分比值 允许输入 0 到 100 转换为 0 0f 1 0f 始终显示百分号并不允许任何无效字符 现在我已经尝试了一些 NumberFormat getPercentIns
  • boost::asio::read 函数挂起

    如果有人可以帮助我 我无法理解 boost asio read 函数在 boost asio 中的工作原理 在 boost 的示例中 他们在接收消息之前声明缓冲区大小 这是没有意义的 我如何知道在读取消息之前要读取多少字节 我尝试了这段代码
  • CrawlSpider 与 Splash

    我的蜘蛛有一些问题 我使用 scrapy 的splash 来获取由JavaScript 生成的 下一页 的链接 从第一页下载信息后 我想从以下页面下载信息 但 LinkExtractor 功能无法正常工作 但看起来 start reques
  • 从 C# 中的枚举中获取 int 值

    我有一堂课叫Questions 复数 在这个类中有一个枚举叫做Question 单数 看起来像这样 public enum Question Role 2 ProjectFunding 3 TotalEmployee 4 NumberOfS
  • Python 3.+ 中另一个交替大小写的字符串

    我对 Python 很陌生 正在尝试了解如何操作字符串 我想要做的是通过删除空格并将大小写从上到下交替来更改字符串 即 这比我想象的要难 到 ThIsIsHaRdErThAnItHoUgHtItWoUlDbE 我拼凑了一个代码来删除空格 大
  • 使用 3 个纬度和经度点以及 3 个距离进行三边测量

    存在未知的目标位置 纬度和经度坐标 我有 3 个纬度和经度坐标对 每对坐标到目标位置的距离 以公里为单位 如何计算目标位置的坐标 例如 假设我有以下数据点 37 418436 121 963477 0 265710701754km 37 4
  • 按钮 Onclick 在表单内不起作用

    Good Day 我正在使用 ASP NET Web 表单 其中我将以下按钮包装在表单标签内
  • 防止 jQueryUI 可排序中的重复项

    小提琴示例 我试图防止重复的项目被拖入 sort2 from sort通过使用条件来检查是否存在基于标题属性的相同项目 sort2 如果有重复的 它会在添加新的之前删除旧的 sort2 sortable receive function e
  • 为什么使用 REST @Produces 注解

    所以我知道您正在指定类型 但为什么呢 在什么条件下这很重要 例如 如果我有以下方法 并且我注释掉了 Produces 注释 它仍然返回 JSON GET Path json Produces MediaType APPLICATION JS
  • C# 中词法分析器的示例

    我想使用一些内置的词法分析器和解析器 我需要一些示例或样本来演示其用法 有人用过 C 中的词法分析器吗 任何人都可以分享示例和代码如何使用它 我没有找到很多 ANTLR 和 lex 但我找不到任何示例或教程 请告诉我是否有人使用过此类东西
  • 无法从 Firebase 控制台发送通知

    This是一些firebase教程 我正在 Firebase 中注册应用程序 获取 google services json 文件 将其粘贴到应用程序文件中 如教程中所示 还获得了令牌 但是当我尝试从控制台发送通知时 状态失败 我猜是 Mi
  • 四舍五入到给定基数的最接近的整数次方

    我正在尝试将一个数字四舍五入到另一个数字的下一个最小幂 我并不特别注意它的旋转方向 但如果可能的话 我更喜欢向下 号码x我四舍五入将满足 x gt 0 并且通常适合在范围内0 lt x lt 1 只有极少数情况下才会高于 1 更一般地说 我
  • Spring 3.0 惰性初始化不支持 DefaultMessageListenerContainer?

    我已经为 JMS 设置了 spring 配置 一切工作正常 除了我似乎无法将其延迟加载 请注意下面代码中的 default lazy init true 如果我从下面的配置中注释掉 jmsContainer DMLC 延迟加载将按预期工作
  • 理解字典

    我需要使用多个哈希表 所以在c 我通常会使用std unordered map 到目前为止我可以理解我可以在Python中使用字典 所以让我们假设以下代码 my dict 1 my dict 1 foo 1 my dict 2 my dic
  • 具有泛型参数类型的函数

    我试图弄清楚如何定义一个适用于多种类型参数 例如 int 和 int64 的函数 据我了解 函数重载在 F 中是不可能的 当然编译器会抱怨 以下面的函数为例 let sqrt int function n int gt int sqrt f
  • 如何使用第一个映射中的键和合并的值将两个映射合并为一个映射?

    如何从两个地图地图创建一个新地图 以便生成的地图仅包含键相同的匹配项并合并内部地图 Iterable Map String Map String Float Example val map1 Iterable Map 1 gt Map ke