【问题标题】:Java Mapping Data Structure [duplicate]Java映射数据结构[重复]
【发布时间】:2012-11-26 21:34:49
【问题描述】:

可能重复:
Java Hashmap: How to get key from value?

我正在寻找一种 Java 数据结构(某种映射),我可以在其中查找键和值。例如,假设我在一组字符串和整数之间有一个一对一的映射。调用此对象映射器。我希望能够执行以下操作:

  1. mapper.getAssociated(value):这将返回密钥
  2. mapper.getAssociated(key):这将返回值

【问题讨论】:

标签: 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】:

    您可以考虑使用GuavaBiMap 接口的实现,例如HashBiMap。来自文档:

    双映射(或“双向映射”)是保留 它的值的唯一性以及它的键的唯一性。这个约束 使 bimap 支持“逆视图”,这是另一个 bimap 包含与此 bimap 相同的条目,但具有相反的键和 价值观。

    所以给定BiMap<Foo, Bar>,您可以调用inverse() 来返回BiMap<Bar, Foo> 视图。

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2012-05-09
      • 2019-06-08
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-18
      相关资源
      最近更新 更多