java - DoubleKey Map 实现问题

标签 java dictionary

有没有一种简洁的方法在Java中生成DoubleKey Map。我在这里找到了几个答案,但没有一个能满足我的要求。

要求:

比方说 K1,K2,V

  1. 只有给定 K1,K2 才能定位唯一值。通过这种方式创建以下内容不起作用。

    Map<K2, K1> m2;
    Map<K1, V>  m1;//here K1 needs have multiple V's.
    
  2. 如果通过 K1 搜索,它应该给出 Map<K2,V> ,反之亦然。

我唯一能做的就是创造

Map<K1,Map<K2,V>>
Map<K2,Map<K1,V>>

并且每次都维护两者。代码看起来很乏味。

即使仅使用这个解决方案,一旦扩展到三重 Key Map,那将是一场灾难。

最佳答案

如果第三方库是公平的游戏,这听起来像 Guava 的 Table 将会是完美的。 Table<R, C, V>表示具有“行”键和“列”键的表。您可以使用get(row, column)获取基于两个键的值,或者您可以使用 row(r)column(c)获得 Map对于适当的行或列,或者您可以使用 rowMap()获得 Map<R, Map<C, V>>columnMap()获得 Map<C, Map<R, V>> .

如果您无法使用第三方库,那么您将无法找到比嵌套 Map 更好的解决方案您已经提到过的解决方案。

关于java - DoubleKey Map 实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17798515/

相关文章:

java - 是否可以在 Java 中将文件编码为 Data URI?

java - JNI,如何列出所有当前实例?

python - 检查 python 3.3 中一对短语的多个值/字符串/变量

java - 如何在android中更改位置更改时更改标记位置

ios - ios-从youtube API v3响应中提取标题

ios - 按原始顺序获取数组中字典的键

java - spring bean 错误

java - 如何使用其键获取 LinkedHashMap 中键/值的位置

java - 是否可以通过分析Java字节码来估计Dalvik字节码执行的指令数

c# - 使用C#HashSet解决等不等的问题