如何在Java中拥有多重地图功能?

2023-12-09

我想要具有以下功能MultiMap在 Java 中,提供与 cpp MultiMap 相同的功能,以便我能够拥有多个具有相同值的键。容器中的多个元素可以具有相同的键。我认为这会起作用:

TreeMap<Key, TreeMap<Key, Value> >. 

任何帮助表示赞赏。


如果你想要一致的语义,你就必须自己推出。实现它的最简单方法是通过Map<K, List<V>>。通过这种方式,您可以将一个键映射到多个值。

然而,关于语义,您需要考虑一些事情。例如,假设您有以下多重映射:

a -> [1, 2, 3]
b -> [4, 5]

上面的大小将报告为 2,但如果您认为 Map 可以表示为这样,也可以解释为 5:

a -> 1
a -> 2
a -> 3
b -> 4
b -> 5

这也会影响您返回的值。返回会更有意义[1, 2, 3, 4, 5]并不是[[1, 2, 3], [4, 5]]。这也适用于条目集;您可能想要返回如上所示的对。

因此,一种可能的实施方式是实施Map<K, V>并使用背衬Map<K, List<V>>。然后,您必须在遵守多重映射语义的同时实现各种方法。

如果您不关心语义,而只是想要将单个键映射到多个值的能力,则可以使用Map<K, List<V>>直接并仍然获得您需要的东西。

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

如何在Java中拥有多重地图功能? 的相关文章

  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 禁用 Eclipse Java 调试器的热代码替换 [重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Eclipse 中禁用热代码替换 https stackoverflow com questions 2594408 how do i disable hot code replace in
  • 无法使用maven编译java项目

    我正在尝试在 java 16 0 1 上使用 maven 构建 IntelliJ 项目 但它无法编译我的项目 尽管 IntelliJ 能够成功完成 在此之前 我使用maven编译了一个java 15项目 但我决定将所有内容更新到16 0 1
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • Firestore - RecycleView - 图像持有者

    我不知道如何编写图像的支架 我已经设置了 2 个文本 但我不知道图像的支架应该是什么样子 你能帮我告诉我图像的文字应该是什么样子才能正确显示吗 holder artistImage setImageResource model getArt
  • 内存一致性 - Java 中的happens-before关系[重复]

    这个问题在这里已经有答案了 在阅读有关内存一致性错误的 Java 文档时 我发现与创建 发生 之前 关系的两个操作相关的点 当语句调用时Thread start 每个具有 与该语句发生之前的关系也有一个 与 new 执行的每个语句之间发生的
  • 如何让spring为JdbcMetadataStore创建相应的schema?

    我想使用此处描述的 jdbc 元数据存储 https docs spring io spring integration docs 5 2 0 BUILD SNAPSHOT reference html jdbc html jdbc met
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • 隐式超级构造函数 Person() 未定义。必须显式调用另一个构造函数?

    我正在开发一个项目 但收到错误 隐式超级构造函数 Person 未定义 必须显式调用另一个构造函数 我不太明白它 这是我的人物课程 public class Person public Person String name double D
  • Java 数组的最大维数

    出于好奇 在 Java 中数组可以有多少维 爪哇language不限制维数 但是JavaVM规范将维度数限制为 255 例如 以下代码将无法编译 class Main public static void main String args
  • 无法加载或查找主类,可以在命令行中使用,但不能在 IDE 中使用[重复]

    这个问题在这里已经有答案了 在将其标记为重复之前 请先听我说完 我正在尝试使用 gradle 导入一个 java 项目 功能齐全 适用于所有其他笔记本电脑 没有问题 我的项目 100 正常运行 适用于所有其他笔记本电脑 当我的笔记本电脑被重
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • 解析输入,除了 System.in.read() 之外不使用任何东西

    我很难找到具体的细节System in read 有效 也许有人可以帮助我 似乎扫描仪会更好 但我不允许使用它 我被分配了一个任务 我应该以 Boolean Operator Boolean 的形式读取控制台用户输入 例如T F 或 T T
  • 无法捕获 Spring Batch 的 ItemWriter 中的异常

    我正在编写一个 Spring Batch 流程来将数据集从一个系统迁移到另一个系统 在这种情况下 这就像使用RowMapper实现在传递给查询之前从查询构建对象ItemWriter The ItemWriter称为save我的 DAO 上的
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • Android 和 Java 中绘制椭圆的区别

    在Java中由于某种原因Ellipse2D Double使用参数 height width x y 当我创建一个RectF在Android中参数是 left top right bottom 所以我对适应差异有点困惑 如果在 Java 中创

随机推荐

  • 根据路线删除@include

    我有一个菜单部分 其中包括一个输入搜索栏 但我不希望搜索栏在所有页面上都可见 而仅针对两个特定的 uri 有没有办法去除刀片中包含的内容 目前它看起来像这样 a href all a a href nes a a href snes a i
  • $在mongodb中过滤最多2个嵌套级别

    我有一个结构如下的数据库 Hospitais utis id 893910 nome UTI1 leitos id 128938120 paciente Oliver id 12803918239 paciente Priscilla
  • 满足条件时终止多处理进程

    我试图运行的想法是这样的 RUN 3 进程进行计算 一旦 3 个进程之一完成任务 立即杀死其他人并继续主要任务 我不能让它再运行下去 我尝试过的事情是 将全局变量放入 multiprocessing manager 但这仍然可以让进程完成循
  • Python pyodbc 使用 SQL Server 身份验证连接到 Sql Server

    窗口用户详细信息与我登录的Sql Server用户不同 因此我尝试使用用户名 Admin JJack 和密码使用pyodbc连接到数据库 但是窗口用户 Jack 的连接显示失败 我不知道哪里出了问题 我的连接字符串 connection p
  • 作为特定用户对 TFS 工作项进行更改

    我正在创建一个 Web 应用程序 我的团队中的用户将使用它 对 TFS 工作项进行更改 我正在为此使用 TFS API 为了访问 TFS 服务器 我在 Web 应用程序中使用了我的凭据 现在 每次有人使用该应用程序并对 TFS 工作项进行更
  • 根据列数据创建新的 Excel 行

    大家下午好 我遇到一个问题 我的用户拥有多个银行帐户详细信息 我需要尝试为每个拥有多个银行帐户的员工创建一个新行 并为第二个银行帐户分配一个新行 Employee Number User ID BSB Account number 1000
  • 使用 Airflow 运行 .EXE 和 Powershell 任务

    我们的系统基本上只是运行 C 和 Powershell 应用程序以及 MS SQL Server 的 Windows 服务器 我们有一个内部工作流程管理解决方案 能够运行执行 EXE BAT PS1 甚至调用 DLL 函数的任务 现在我正在
  • 重定向到 Amazon S3 静态网站中的错误页面

    我有一个存储桶并在其中启用了静态网站托管 假设我的存储桶中只有两个文件 index html 和 error html 如果使用 test html 命中请求 则会抛出访问被拒绝或不会抛出此类关键错误 如果出现此类错误 如何重定向到 err
  • 使用保留字作为属性名称,重新审视

    保留字可以用作对象的属性名称吗 这个问题是在之前的 Stack Overflow 问题中间接提出的 浏览器支持在 JavaScript 中使用保留字作为属性名称 答案似乎是普遍共识亚历克斯 韦恩 您可以使用这些单词 但只能作为字符串而不是速
  • 未来不完整?

    object Executor extends App implicit val system ActorSystem implicit val materializer ActorMaterializer implicit val ec
  • RDD 转换和操作只能由驱动程序调用

    Error org apache spark SparkException RDD 转换和操作只能由驱动程序调用 不能在其他转换内部调用 例如 rdd1 map x gt rdd2 values count x 无效 因为值转换和计数操作无
  • TFS 排除目录 - .tfignore 不起作用,它是一个非常大的目录

    我看过其他帖子并在 stackoverflow 上阅读它们 如何忽略 TFS 中的文件 目录以避免它们进入中央源存储库 然而这似乎不起作用 我有一个名为 FS 的根文件夹 在该目录中我有以下 tfignore This tfignore f
  • Oracle 10g 按日期选择查询没有返回结果

    我有一些令人困惑的问题 SQL gt select login status date modified from users where login zack 661 and date modified 05 MAR 14 no rows
  • Javascript stringify '%%' 丢失百分号

    为什么 stringify 的输出缺少百分号 var a dp var t JSON stringify a console log t t 结果是 t dp 为什么没有结果 t dp Thanks 正如文档中所指定的console log
  • 导入错误:“没有名为模块”*确实*存在[重复]

    这个问题在这里已经有答案了 当我启动金字塔保存时 我得到这个堆栈跟踪 python which pserve etc development ini Traceback most recent call last File home hug
  • 如何从 api 获取整个 Facebook 好友列表

    有没有办法使用 api 获取整个 Facebook 好友列表 我尝试了很多事情 这是我的镜头 FacebookClient f new FacebookClient access token f IsSecureConnection tru
  • 使用扩展方法表示的嵌套“from”LINQ 查询

    如何使用扩展方法语法编写此 LINQ 查询 var query from a in sequenceA from b in sequenceB select 为了供您将来参考 此表格的所有问题均由 C 规范第 7 16 节解答 本段回答了您
  • IntelliJ IDEA 终端特殊字符

    我最近开始在 Windows 10 上使用 IntelliJ IDEA Ultimate 并且非常想使用集成终端 但是 我无法让它与特殊字符 例如德语元音变音或 等 一起使用 如果我没有一些以 开头的文件夹 我无法重命名这些文件夹 那不会是
  • 移除边框后,边距超出 div 范围

    源于我网站上边框和边距的实际问题 我制作了这个测试示例 我认为它有点奇怪
  • 如何在Java中拥有多重地图功能?

    我想要具有以下功能MultiMap在 Java 中 提供与 cpp MultiMap 相同的功能 以便我能够拥有多个具有相同值的键 容器中的多个元素可以具有相同的键 我认为这会起作用 TreeMap