java - 是否存在具有 2 个索引/一个键-键数据结构的数据结构?

标签 java dictionary data-structures key bimap

Java 中是否有一种数据结构(java util、guava...)允许我存储也可以解释为值键的“键值”对?

示例:

Datastructure d = new Datastructure();

d.add(1, "foo");
d.add(21 "bar");
d.add(33 "hello");
d.add(55 "world");

d.get1(1)这样的函数应该返回foo。 像 d.get2("foo") 这样的函数应该返回 1

d.get1(33)这样的函数应该返回hello。 像 d.get2("hello") 这样的函数应该返回 33

...

有这样的东西吗?

最佳答案

在 Apache commons 集合库中是 BidiMap接口(interface)及其一些实现。该接口(interface)有一个获取逆映射的方法,即键和值的角色交换的映射。

如果您不想使用此类,您可以在内部使用两个映射轻松实现您自己的类。

关于java - 是否存在具有 2 个索引/一个键-键数据结构的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56119314/

相关文章:

java - 相同的字符串,不同的哈希码

java - 使用jackson遍历json树

c++ - 将成员函数指针的 vector 传递给函数

python - python文件中的单词分析和评分

java - 我用不同的参数执行哪种方法?

python - 从 [list] 字典 python 中删除多个值

c++ - 如何修改 Dijkstra 算法以在最短路径中至少具有 X 个顶点或 K 个边

java - 对 Java LinkedList 的较低级别访问?

C++:隐式链表

java - 仅列出 s3 存储桶中的子文件夹