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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 执笔画梦 中级黑马   /  2015-1-7 21:07  /  1514 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

既然Set子类都有自己的迭代器,为什么Map没有,或者我错了?还是Map有自己的迭代器?Set是单列的,Map是双列的,难道数据结构一样吗?

6 个回复

倒序浏览
map集合遍历使用的是增强for循环,而增强for循环的底层调用的还是迭代器啊。。。
回复 使用道具 举报
map集合里面遍历的时候用keySet 返回Set类型的键 然后还是可以用迭代啊

或者可以用rntrySet<>.......返回Set类型的 Map.Entry<> 然后用迭代器。。。。
回复 使用道具 举报
学习了!!
回复 使用道具 举报
Map集合有迭代器,只是因为是双列集合不能直接使用而已,必须通过keySet( )方法或者entrySet( )方法,获得键集合或映射关系集合,才能接着使用迭代器遍历集合对象
回复 使用道具 举报
可以使用Map的keyset()的迭代器。请看示例:
  1. HashMap<String,Integer> map=new HashMap<String,Integer>();
  2.         map.put("java",9000);
  3.         map.put("android",13000);
  4.         map.put("php",10000);
  5.         System.out.println(map);//{android=13000, php=10000, java=9000}
  6.         Iterator<String> it=map.keySet().iterator();
  7.         while(it.hasNext()){
  8.             String str=it.next();
  9.             if(str.equals("php")){
  10.                 it.remove();//使用keySet的迭代器移出
  11.             }
  12.         }
  13.         System.out.println(map);//{android=13000, java=9000}
复制代码



点评

学习了  发表于 2015-1-9 21:34
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马