今天在程序中就用到了collection中的DualHashBidiMap,其中Bidi是bidirectional的意思,我初步的理解是 在于它能将hashmap中的key和value调换的功能;该类中有一个方法:inverseBidiMap,其JavaDoc如下:
public BidiMapinverseBidiMap()
Description copied from interface: BidiMap
Gets a view of this map where the keys and values are reversed.
Changes to one map will be visible in the other and vice versa. This enables both directions of the map to be accessed as a Map.
Implementations should seek to avoid creating a new object every time this method is called. See AbstractMap.values() etc. Calling this method on the inverse map should return the original.
Specified by:
inverseBidiMap in interface BidiMap
Returns:
an inverted bidirectional map
假如:DualHashBidiMap biMap1=new DualHashBidiMap();
biMap1.put(”key1”,”value1”);
DualHashBidiMap biMap2=biMap.inverseBidiMap();
则在biMap2中的关键字为”value1”,值为“key1”。
再回来说说我的程序。我今天没有用到inverseBidiMap()这个method,而是使用了mapIterator()这个方法,其JavaDoc如下:
For example:
Map<String,String> fieldsMap = DBFieldMap.MAP.get(map.get(table));
BidiMap bidiMap = new DualHashBidiMap(fieldsMap);
bidiMap.inverseBidiMap();
return (String) bidiMap.getKey(field);