A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yinxjfly 高级黑马   /  2014-6-30 22:08  /  1576 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

map集合如何通过value(值)获取对应的key(键)?
请老手们指点!

9 个回复

倒序浏览
只有通过key获取value.你搞反了吧。
key是唯一的。value是可以重复的。如何获取?明白不?
回复 使用道具 举报
小周务商 发表于 2014-6-30 22:19
只有通过key获取value.你搞反了吧。
key是唯一的。value是可以重复的。如何获取?明白不? ...

同学,我没写错,如果好解决我就不问了!
回复 使用道具 举报
为什么要这么做呢?
个人认为如果要用值获取键那么要有一个前提,你输入的值和键一样都具有唯一性。
否则没有什么意义。

然后就简单了,直接获取键值的set集合,然后迭代器进行迭代,并且根据数据类型进行相应的比较。
回复 使用道具 举报
value值不唯一的这还能取?
回复 使用道具 举报
key和value都是set类型的  而set类型存放的数据本身就是无序的
回复 使用道具 举报
如果非要这样搞的话,那只用迭代集合中所有的键和值,然后把已知的值和集合中迭代出来的值去比较了,如果相同就找到你要的键了,那么这个键可能就有多个啦。
回复 使用道具 举报
多一点 发表于 2014-6-30 22:57
如果非要这样搞的话,那只用迭代集合中所有的键和值,然后把已知的值和集合中迭代出来的值去比较了,如果相 ...

我想到的也是这个方法!哈哈!:handshake
就是想知道大伙还有什么好的想法,分享一下!
多谢分享!
回复 使用道具 举报
yinxjfly 发表于 2014-6-30 23:04
我想到的也是这个方法!哈哈!
就是想知道大伙还有什么好的想法,分享一下!
多谢分享! ...

我也只能这样搞,高深的就不会啦,因为集合本身设计就是这样的,因为键的唯一性就有keySet()方法,否则可能会有个valueSet()方法啦
回复 使用道具 举报
万一要这么干的话 你先迭代出来建和值,然后将值作为键  键作为值存放到一个新的map里。。注意原集合的值有可能重复。因此你在构建新的map的时候需要给同名的键加后缀以是区分
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马