黑马程序员技术交流社区

标题: 增强FOR循环问题 [打印本页]

作者: 宋文轩    时间: 2011-11-11 21:17
标题: 增强FOR循环问题
用增强for循环如何遍历的map集合? 感觉不是很理解for(  :)这个冒号前面要怎么写。数组倒明白 map结合就晕了
作者: 刘福双    时间: 2011-11-11 21:23
先取出map中所有ID 这需要一个方法
Set set=linkedhashmap.getkeys()(你的map集合的一个方法)
然后对你建立的set集合 进行遍历
可以用增强for循环:
for(Object o:set){
    if(o.equals(RecordID)){
        String str = map.getvalue(o);
}
}
就可以了当然str要在外面定义
作者: 张邦庆    时间: 2011-11-11 21:25
这是1.5新特性,要迭代的类必须实现Iterator接口;
可以对比的理解,其实for增强内部也是迭代实现的:Set<String> set = new HashSet<String>();
Iterator<String> it = set.iterator();
while (it.hasNext()) {
  String str = it.next();
  System.out.println(str);
}
for循环遍历:
for (String str : set) {
      System.out.println(str);
}

作者: 张志东    时间: 2011-11-11 21:47
原理是一样的,集合是数组的升级+加强的产物
作者: 陈超    时间: 2011-11-11 22:09
本帖最后由 陈超 于 2011-11-11 22:41 编辑

增强for循环输出map集合两种方式:
一、先得到map集合key的set集合:Set<key类型> set=map实例.keySet();
                                                   for(key类型 s:set){}
                                                  其中 “:”前写上Map集合中key的类型(与Set集合中的类型相同),
                                     空一格写一个变量(任意,不和其他变量名冲突),变量表示Map中key的一个引用。
二、先得到map集合中key和value的关系的集合:Set<Map.Entry<k,v>> set=Map实例.entrySet();
                                                                      for(Map.Entry<k,v> me:set){}
                                                                     :号前面的写法与一相同
作者: 宋文轩    时间: 2011-11-12 12:47
谢谢大家  主要是问MAP集合的写法  谢谢楼上的哥们




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