获取值的键而不是获取键值? [复制]
Posted
技术标签:
【中文标题】获取值的键而不是获取键值? [复制]【英文标题】:Getting a value's key instead of getting a keys value? [duplicate] 【发布时间】:2015-12-16 22:12:30 【问题描述】:我如何能够从其值中获取特定键。除了输入密钥并获取值之外,我如何能够输入值并获取密钥?
【问题讨论】:
你在使用HashMap吗? 同一个值可能有多个key;你想要哪个? 【参考方案1】:你不能用简单的Map
来做到这一点(至少不是以一种有效的方式),因为一个键可以有多个值,并且这些值没有以一种可以快速检索的方式存储。仅使用常规Map
,您需要遍历所有条目以找到值的对应键。但是,您可以创建自己的数据结构,其中包含两个映射(一个从 A 到 B,第二个从 B 到 A)以创建具有 1:1 映射的双向映射,您可以在其中从 B 或 B 查找 A在 O(1) 时间内从 A 开始(我没有使用“键”和“值”,因为在双向映射中,两种类型都是)。查看 Guava 中的 BiMap (HashBiMap source code) 以获取相关示例。
【讨论】:
以上是关于获取值的键而不是获取键值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何从另一个模式中获取特定的键值,通过比较它们是不是具有相同的键值?