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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhwfa1991 中级黑马   /  2015-8-18 17:17  /  395 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

弱弱的问一下,如何通过HashMap的value值,得到key键值呢?

4 个回复

倒序浏览
本帖最后由 RedProtector 于 2015-8-18 17:37 编辑

hashmap中key值是唯一的,但value是不唯一的;同一个value可能返回多个key
下面是个例子:找出value是“value”的key
  1. import java.util.HashMap;
  2. import java.util.Iterator;
  3. import java.util.Map;
  4. import java.util.Set;
  5. public class HashMapKey {
  6.     public static void main(String[]args){
  7.         String value = "map";
  8.         Map<String,String> map = new HashMap<String,String>();//HashMap
  9.         map.put("0", "what"); //增加值
  10.         map.put("1", value);
  11.         map.put("2", "asdf");
  12.          map.put("3", value);
  13.          Set<String> mapSet =  map.keySet();//获取所有的key值 为set的集合
  14.         Iterator<String> itor =  mapSet.iterator();//获取key的Iterator遍历
  15.         while(itor.hasNext()){//存在下一个值
  16.                         String key = itor.next();//当前key值
  17.                         if(map.get(key).equals(value)){//获取value 与 所知道的value比较
  18.                                 System.out.println("你要找的key :"+key);//相等输出key
  19.                         }
  20.         }
  21.         }
  22. }
复制代码



回复 使用道具 举报
RedProtector 发表于 2015-8-18 17:22
hashmap中key值是唯一的,但value是不唯一的;同一个value可能返回多个key

关键是怎么通过value值返回可以值?
回复 使用道具 举报
zhwfa1991 发表于 2015-8-18 17:36
关键是怎么通过value值返回可以值?

看上一个回复,我重新编辑了一下
回复 使用道具 举报
RedProtector 发表于 2015-8-18 17:38
看上一个回复,我重新编辑了一下

谢谢大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马