1
103
在Java API中没有这样的类。您想要的ApacheCommons类将成为 BidiMap . 作为一个数学家,我将这种结构称为双射。 |
2
72
|
3
19
这里有一个简单的类,我过去常常这样做(我还不想有另一个第三方依赖)。它并没有提供地图中所有可用的功能,但它是一个良好的开端。
|
4
11
如果没有发生冲突,则可以将两个方向添加到同一个哈希图中:-) |
5
3
给我2美分。 或者您可以对泛型使用一个简单的方法。小菜一碟。
当然,您必须有一个具有唯一值的映射。否则,其中一个将被替换。 |
6
0
这是一个很古老的问题,但是如果有人像我一样有大脑阻塞,并且偶然发现了这个问题,希望这能有所帮助。 我也在寻找一个双向的哈希图,有时它是最简单的答案,是最有用的。 如果您不希望重新发明控制盘,并且不希望向项目中添加其他库或项目,那么简单地实现并行数组(如果您的设计需要,可以使用arraylist)如何?
只要你知道这两个键中1个的索引,你就可以轻松地请求另一个。因此,查找方法可能类似于:
这是假设您使用的是适当的面向对象结构,其中只有方法在修改这些数组/数组列表时,保持它们平行是非常简单的。对于数组列表来说更容易,因为如果数组的大小发生变化,只要您连续添加/删除,就不必重新生成数组。 |
7
0
灵感来自 GETah's answer 我决定自己写一些类似的东西,并做一些改进:
用法与普通映射类似,以获取映射调用的反向视图
我不确定这完全是一个傻瓜证明(事实上,这可能不是),所以如果你发现任何缺陷,请随时评论,我会更新答案。
|