【问题标题】:Java Mapping Data Structure [duplicate]Java映射数据结构[重复]
【发布时间】:2012-11-26 21:34:49
【问题描述】:
【问题讨论】:
标签:
java
data-structures
map
mapping
【解决方案1】:
我认为您正在寻找 google guava BiMap(或)commons BidiMap。
例子:
BidiMap bidiMap = new DualHashBidiMap( );
bidiMap.put( "il", "Illinois" );
bidiMap.put( "az", "Arizona" );
bidiMap.put( "va", "Virginia" );
// Retrieve the key with a value via the inverse map
String vaAbbreviation = bidiMap.inverseBidiMap( ).get( "Virginia" );
// Retrieve the value from the key
String illinoisName = bidiMap.get( "il" );
查看此帖子以获取BiMap Example。
【解决方案2】:
您可以考虑使用Guava 的BiMap 接口的实现,例如HashBiMap。来自文档:
双映射(或“双向映射”)是保留
它的值的唯一性以及它的键的唯一性。这个约束
使 bimap 支持“逆视图”,这是另一个 bimap
包含与此 bimap 相同的条目,但具有相反的键和
价值观。
所以给定BiMap<Foo, Bar>,您可以调用inverse() 来返回BiMap<Bar, Foo> 视图。