java - 在键/值对中仅使用一个键有效地查找值,时间复杂度明智 : Java

标签 java algorithm data-structures dictionary time-complexity

我希望从只有一个对应键的 Java 键/值对(具有一对多映射的映射)中检索值,而不循环遍历映射中的所有值并将其转换为 O(n ) 复杂性。 键/值数据结构如下:

K1 --> V1, V2
K2 --> V1, V2, V3
K3 --> V1
K4 -->
K5 --> V4, V2

如果有人对此有任何建议,或者是否可以在时间复杂度方面做得更好,我们将不胜感激。

最佳答案

在 google 的 guava 中有一个非常好的 BiMap 类,您可以在其中查找键和值(它由两个映射支持)。

http://code.google.com/p/guava-libraries/

编辑:澄清后。我认为我的答案没有太大变化。 Guava 也有非常好的 MultiMap 接口(interface)(以及它的几个实现),您很可能将其用于您的目的。

关于java - 在键/值对中仅使用一个键有效地查找值,时间复杂度明智 : Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528614/

相关文章:

java - 扫描仪无法使用 while 循环

javascript - 单词随机播放算法(PHP 或 javascript)

c++ - 根据键的类型选择 map 或 unordered_map

algorithm - 查找二叉树中最大独立集的大小 - 为什么错误的 "solution"不起作用?

algorithm - 给定一棵树,找到以特定节点为根的子树中两个值的乘积,使得该乘积具有最少数量的零?

data-structures - 如何使用结构成员类型进行散列?

java - 如何将整数值更改为罗马数字

java - Play 框架中出现 "groovy.lang.MissingFieldException: No such field: metaClass for class: java.lang.Class"错误

java - Eclipse 在运行 Spring JUnit 时抛出 java.lang.NullPointerException

c++ - 寻找字符串实现中的最大回文