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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-李勇 中级黑马   /  2012-8-17 15:16  /  1055 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马-李勇 于 2012-8-17 15:45 编辑

//Map集合
  Map<String,String> m=new HashMap();
   m.put("02","zhangshan");
   m.put("03","zhangshan");
   m.put("01","zhangshan");
   //Map可以打印
   System.out.println(m);
//取出方式
  //获取set集合的所有key
  Set<String> keyset=m.keySet();
  //迭代器
  Iterator<String> mapsetit=keyset.iterator();
  while(mapsetit.hasNext())
  {
   //获取key
   String key=mapsetit.next();
   //获取value
   String value=m.get(key);
   //System.out.println("key="+key+"  "+"value="+value);
   
   //System.out.println(key);为什么这句可以输出。
   //System.out.println(mapsetit.next());这句就不可以?

错误:
02
Exception in thread "main" java.util.NoSuchElementException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:796)
at java.util.HashMap$KeyIterator.next(HashMap.java:828)
at lianxi.dg.collectiondemo.main(collectiondemo.java:77)
为什么会报没有元素?
晕了,.next()是返回下一个元素。

1 个回复

倒序浏览
  while(mapsetit.hasNext())
   {
    //获取key
    String key=mapsetit.next();
    //获取value
    String value=m.get(key);
    //System.out.println("key="+key+"  "+"value="+value);
   
    //System.out.println(key);
    //System.out.println(mapsetit.next());//当循环遍历到最后一个时,mapsetit.next()就超过了

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