Java是否有具有反向查找功能的HashMap?

我有一些数据是以“键-键”格式组织的,而不是“键-值”。它就像一个HashMap,但我需要在两个方向上进行O(1)查找。这种类型的数据结构是否有名称,Java的标准库中是否包含类似的东西?(或者也许是Apache Commons?

我可以编写自己的类,基本上使用两个镜像地图,但我宁愿不重新发明轮子(如果这已经存在,但我只是没有搜索正确的术语)。


答案 1

Java API 中没有这样的类。你想要的Apache Commons类将成为BidiMap的实现之一。

作为一名数学家,我会把这种结构称为双射。


答案 2

除了Apache Commons,Guava还有一个BiMap