如果你选择使用Commons Collections库而不是标准Java Collections API,则可以轻松实现此目的。
Collections库中的BidiMap接口是一个双向映射,使你可以将键映射到值(如法线映射),也可以将值映射到键,从而允许你在两个方向上执行查找。getKey()方法支持获取值的键。
需要注意的是,bidi映射不能将多个值映射到键,因此,除非你的数据集在键和值之间具有1:1映射,否则你不能使用bidimaps。
更新资料
如果要依赖Java Collections API,则必须在将值插入到映射中时确保键和值之间的1:1关系。说起来容易做起来难。
一旦可以确保使用,请使用entrySet()方法获取Map中的一组条目(映射)。获得类型为Map.Entry的集合后,请遍历条目,将存储的值与期望值进行比较,并获得对应的key。
更新#2
可以在Google Guava和重构的Commons-Collections库(后者不是Apache项目)中找到对带有泛型的比迪地图的支持。感谢Esko指出Apache Commons Collections中缺少的通用支持。将集合与泛型一起使用可使代码更易于维护。



