黑马程序员技术交流社区

标题: 为什么Map没有迭代器? [打印本页]

作者: 执笔画梦    时间: 2015-1-7 21:07
标题: 为什么Map没有迭代器?
既然Set子类都有自己的迭代器,为什么Map没有,或者我错了?还是Map有自己的迭代器?Set是单列的,Map是双列的,难道数据结构一样吗?
作者: 叫我小强    时间: 2015-1-7 21:15
map集合遍历使用的是增强for循环,而增强for循环的底层调用的还是迭代器啊。。。
作者: mmppp    时间: 2015-1-7 21:29
map集合里面遍历的时候用keySet 返回Set类型的键 然后还是可以用迭代啊

或者可以用rntrySet<>.......返回Set类型的 Map.Entry<> 然后用迭代器。。。。
作者: chenshiji    时间: 2015-1-7 22:06
学习了!!
作者: 任我行_2014    时间: 2015-1-8 00:10
Map集合有迭代器,只是因为是双列集合不能直接使用而已,必须通过keySet( )方法或者entrySet( )方法,获得键集合或映射关系集合,才能接着使用迭代器遍历集合对象
作者: huduzhi    时间: 2015-1-8 00:24
可以使用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}
复制代码








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