黑马程序员技术交流社区

标题: Map集合中的键值获取问题! [打印本页]

作者: yinxjfly    时间: 2014-6-30 22:08
标题: Map集合中的键值获取问题!
map集合如何通过value(值)获取对应的key(键)?
请老手们指点!

作者: 小周务商    时间: 2014-6-30 22:19
只有通过key获取value.你搞反了吧。
key是唯一的。value是可以重复的。如何获取?明白不?
作者: yinxjfly    时间: 2014-6-30 22:30
小周务商 发表于 2014-6-30 22:19
只有通过key获取value.你搞反了吧。
key是唯一的。value是可以重复的。如何获取?明白不? ...

同学,我没写错,如果好解决我就不问了!

作者: 来自沙沙的我    时间: 2014-6-30 22:40
为什么要这么做呢?
个人认为如果要用值获取键那么要有一个前提,你输入的值和键一样都具有唯一性。
否则没有什么意义。

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

我想到的也是这个方法!哈哈!:handshake
就是想知道大伙还有什么好的想法,分享一下!
多谢分享!
作者: 多一点    时间: 2014-6-30 23:08
yinxjfly 发表于 2014-6-30 23:04
我想到的也是这个方法!哈哈!
就是想知道大伙还有什么好的想法,分享一下!
多谢分享! ...

我也只能这样搞,高深的就不会啦,因为集合本身设计就是这样的,因为键的唯一性就有keySet()方法,否则可能会有个valueSet()方法啦
作者: 海世山盟    时间: 2014-7-1 00:23
万一要这么干的话 你先迭代出来建和值,然后将值作为键  键作为值存放到一个新的map里。。注意原集合的值有可能重复。因此你在构建新的map的时候需要给同名的键加后缀以是区分




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2