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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public static void keyMethod(){
  2.                 Map<String,String> mh=new HashMap<String,String>();
  3.                
  4.                 mh.put("001", "think1");
  5.                 mh.put("007", "think7");
  6.                 mh.put("004", "think4");
  7.                 mh.put("006", "think6");
  8.                
  9. //                先获取map集合所有键的Set集合,keySet();
  10.                 Set<String> mhSet=mh.keySet();
  11.                
  12. //                获取迭代器
  13.                 for(Iterator<String> it=mhSet.iterator();it.hasNext();){
  14.                
  15. //                有了键就可以通过map集合get方法获取对应的值
  16.                        
  17.                         sop("mh Key....."+it.next()+"\t mh value....."+mh.get(it.next()));
  18.                        
  19.                 }
  20.                
  21.         }
  22. public static void sop(Object obj){
  23.                 System.out.println(obj);
  24.         }
复制代码
输出结果是mh Key.....004         mh value.....think6
mh Key.....007         mh value.....think1
打印键没问题4个,但是打印键和值就出问题了。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 骚年,不够细心呢~

查看全部评分

5 个回复

倒序浏览
sop("mh Key....."+it.next()+"\t mh value....."+mh.get(it.next()));
你一句话里就调用了两次it.next(),当然对不上

点评

FFF
不够认真~!  发表于 2013-11-22 00:23
回复 使用道具 举报
sop("mh Key....."+it.next()+"\t mh value....."+mh.get(it.next()));
这一句你调用了两次next方法,这两次得到的值是不一样的
建议楼主改成
String temp = it.next();
sop("mh Key....."+temp+"\t mh value....."+mh.get(temp);

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 没带例子,只能以金币意思意思~.

查看全部评分

回复 使用道具 举报
何丛 发表于 2013-11-21 22:23
sop("mh Key....."+it.next()+"\t mh value....."+mh.get(it.next()));
这一句你调用了两次next方法,这两 ...

--刚才研究了下 --改好了--和你说的办法一样 哈哈哈
回复 使用道具 举报
下面两种方式都可以获取Map中的键值对:
public static void main(String[] args) {
                Map<String, String> map = new HashMap<String, String>();
                map.put("001", "a");
                map.put("002", "b");
                map.put("003", "c");
                map.put("004", "d");

                Set<String> set = map.keySet(); //方式一
                Set<Map.Entry<String, String>> entrySet = map.entrySet(); //方式二
                for (Iterator<String> it = set.iterator(); it.hasNext();) {
                        String str = it.next();
                        System.out.println("key:" + str + "  value:" + map.get(str));
                }
                System.out.println("============美丽的分割线===========");
                for (Iterator<Map.Entry<String, String>> it = entrySet.iterator(); it
                                .hasNext();) {
                        Map.Entry<String, String> mapEntry = it.next();
                        System.out.println("key=" + mapEntry.getKey() + "  value="
                                        + mapEntry.getValue());
                }
        }

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 美丽的技术分送上~和分割线一样美丽~~哈哈.

查看全部评分

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