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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© peerless2012 中级黑马   /  2013-6-18 22:37  /  1485 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对数组用高级for循环是显而易见的,但是在集合中有的能用for循环,有的得使用迭代器,怎么区别呢?

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

5 个回复

倒序浏览
跌代时重复了for循环,而且有参数化会自动替换参数。for循环不能替换参数化的参数。

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
完全看需求了 下面这种情况用for那不累坏了 是吧 !具体看代码
  1. package com.heima.collections;

  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.Map;

  5. public class Test1 {
  6.         public static void main(String[] args) {
  7.         Map<String,Map<String ,String>> school=new HashMap<String,Map<String ,String>>();
  8.     Map<String ,String> room1=new HashMap<String,String>();
  9.     Map<String ,String> room2=new HashMap<String,String>();
  10.      // 向两个字集合里面添加值
  11.      room1.put("学生1", "好好学习呵");
  12.      room2.put("学生2", "day  day  up  yeah ");
  13.      // 向学校集合里面添加值
  14.      school.put("教室1", room1);
  15.      school.put("教室2", room2);
  16.      //对学校的迭代
  17.     Iterator<String> it=school.keySet().iterator();
  18.     while(it.hasNext()){
  19.             String roomName=it.next();
  20.             Map<String ,String> role=  school.get(roomName);  
  21.             System.out.println(roomName);
  22.             //对教室的迭代
  23.             Iterator<String> it1=role.keySet().iterator();
  24.             while(it1.hasNext()){
  25.             String id=it1.next();
  26.             String room=role.get(id);
  27.             System.out.println(room);
  28.             }
  29.     }
  30.         }

  31. }
复制代码
迭代器也就是装集合的容器。

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
遍历的方式:
Collection:
迭代器和增强for:
|--List
      |--get()和size()结合
|--Set
       List:如果需要索引,那么用get()方式。否则,就用Collection的方式。
为了方便一般使用增强for。
Map集合:
先通过keySet();后使用迭代器,或增强for,
          就是通过key,来找value,,
   Set<String> set = map.keySet();
         for (String key : set) {
             String value = map.get(key);
              System.out.println(key + "***" + value);
    }     

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
foreach可用于遍历任何集合或数组,而且操作简单易懂,他唯一的不好就是需要了解集合内部类型

iterator是最强大的,他可以随时修改或者删除集合内部的元素,并且是在不需要知道元素和集合的类型的情况下进行的,当你需要对不同的容器实现同样的遍历方式时,迭代器是最好的选择!

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1

查看全部评分

回复 使用道具 举报
楼主您好,由于帖子长时间没有动态,我已经讲帖子改成已解决了,如有问题,可以私聊我。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马