通过Value获取Map的Key(双向绑定Map)

it2023-02-04  51

Google的Guava提供了BiMap这样一个双向Map,调用inverse()方法会返回一个反向的关联的BiMap,然后便可以通过get()方法获取key值了。 代码如下:

@Test public void test() { BiMap<String, Integer> biMap = HashBiMap.create(); biMap.put("A", 1); biMap.put("B", 2); biMap.put("C", null); biMap.put("D", 4); System.out.print(biMap.inverse().get(1)); // "A" }

需要注意的是,BiMap作为一个双向的Map,它不能存储多对一的关系;而HashMap是可以的。其实很好理解,因为是双向的,所以即要满足Key值的唯一性,也要满足Value值的唯一性。如果往里存放同样的Value,会抛异常:java.lang.IllegalArgumentException: value already present。

最新回复(0)