繁体   English   中英

是否有一个Java集合或列表可以根据给定的对象值返回对象键?

[英]Is there a Java collection or list that can return the object key given the object value?

有没有一种方法可以在我可以提供密钥并接收关联对象的同时提供一个集合或列表,同时又可以提供该对象并接收该对象的密钥?

我可以制作两个相互交叉引用的HashMaps ,例如:

HashMap <Integer, String> objectAccessor;
objectAccessor.put(5, "five");

HashMap <String, Integer> keyAccessor;
keyAccessor.put("five", 5);

或者,我可以遍历keySet直到对象被匹配为止(但这似乎效率很低)。

有没有一种有效的方法可以仅使用一个集合来执行此操作,还是我最好选择两个HashMaps

如果您打算使用第三方库,请考虑查看Guava的BiMap实现。

例如, HashBiMap由两个HashMap实例支持,并为您处理脏工作。

我认为,两张地图是您的最佳选择。 当然,对于HashMap而言,即使它提供了按值搜索键的方式,效率也很低。

您可以使用BIMAPgauva库

Google馆藏有双向地图 该库还具有许多其他不错的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM