获取值的键而不是获取键值? [复制]

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) 以获取相关示例。

【讨论】:

以上是关于获取值的键而不是获取键值? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

PHP获取数组中重复值的键值

我可以使用啥查询从选定键值的本地存储中获取数据

如何获取自己键盘上按键的键值(KeyCode)

如何从另一个模式中获取特定的键值,通过比较它们是不是具有相同的键值?

angularjs之ng-mode获取lobject类型里的键值

JavaScript:检查对象数组中是不是存在重复的键值并删除所有但最近添加的具有该键值的对象