双向map,通过value找到key,还有...
开发中,你有没有遇到过需要通过map中的value值获取相应的key的值呢?如果你的map中的key-value是1:1映射的,那好了,可以考虑使用org.apache.commons.collections.BidiMap.
下面演示它的几个小功能:
@Test
public void fun4() {
BidiMap map = new DualHashBidiMap();
map.put(“1”, “a”);
map.put(“2”, “b”);
map.put(3, “c”);
map.put(3, “cc”);//会覆盖上一行的值,因为这是1:1映射
map.put(3.14, Math.PI);
/*
* 再也不需要通过Map的Entry对象遍历了!!! 效率上去了.
*/
MapIterator it = map.mapIterator();
while (it.hasNext()) {
Object key = it.next();
Object value = it.getValue();
System.out.println(key + “->” + value);
}
//反向功能,通过value->key
System.out.println(map.getKey(“a”));
}
下面演示它的几个小功能:
@Test
public void fun4() {
BidiMap map = new DualHashBidiMap();
map.put(“1”, “a”);
map.put(“2”, “b”);
map.put(3, “c”);
map.put(3, “cc”);//会覆盖上一行的值,因为这是1:1映射
map.put(3.14, Math.PI);
/*
* 再也不需要通过Map的Entry对象遍历了!!! 效率上去了.
*/
MapIterator it = map.mapIterator();
while (it.hasNext()) {
Object key = it.next();
Object value = it.getValue();
System.out.println(key + “->” + value);
}
//反向功能,通过value->key
System.out.println(map.getKey(“a”));
}