对的数据结构,每个值(成对)映射到其他值?

Sgt*_*tud 5 java map data-structures

我又回来了一个类似的问题.是否有可以返回其特定合作伙伴的DataType?例如:

ExampleType<String,String> test = new ExampleType<String,String>();
test.put("hello","hi");
Run Code Online (Sandbox Code Playgroud)

如果我输入test.get("hi"),它将返回"hello",如果我输入test.get("hello"),它将返回"hi".

我对此的唯一猜测可能是二维数组,但我不确定如何实现它.截至目前,我能理解的唯一方法是创建两个不同的哈希映射并交换每个哈希映射中的密钥.(显然这不是非常有效/有效).

感谢您的帮助!

Ara*_*ram 10

你可以使用Guava的BiMap.它也支持反向查找:

bimap(或"双向映射")是一种映射,它保留其值及其键的唯一性.此约束使bimaps支持"反向视图",这是另一个包含与此bimap相同的条目但具有反向键和值的bimap.

如果您已经依赖commons-collections,那么您也可以使用BidiMap.