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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 康健 黑马帝   /  2011-10-11 10:47  /  2548 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                              高级for循环比一般的循环好在哪里?   是不是用哪个都可以,还是分用在那个方法中?

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 丁林 于 2011-10-11 11:02 编辑

1.增强型的for循环 优点主要体现在集合中,语法简单。
比如对 set 的遍历:
一般是迭代遍历:
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);
}
语法明显简单了!

2.优点还体现在泛型
假如 set中存放的是Object
Set<Object> set = new HashSet<Object>();
  //for循环遍历:
for (Object obj: set) {
      if(obj instanceof Integer){
                int aa= (Integer)obj;
             }else if(obj instanceof String){
               String aa = (String)obj
             }
              ........
}
如果你用Iterator遍历,那就晕了
map list 也一样

3.唯一的缺点就是在遍历集合过程中,不能对集合本身进行操作
  for (String str : set) {
   set.remove(str);//错误!
  }

评分

参与人数 1技术分 +1 黑马币 +4 收起 理由
wangfayin + 1 + 4 赞一个!

查看全部评分

回复 使用道具 举报
1. 高级for循环,其实也就是迭代器而起,只能用于历遍数组中的每一个元素。

2. for 循环的功能要比迭代型for多很多,你可以设置循环次数,设置你想判断的条件,用于不同场合。而且for循环本身也可以通过条件的限定变成一个迭代器使用,此时和迭代型for是一样的,但后者语法简单。

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

回复 使用道具 举报
刘浩 黑马帝 2011-10-11 11:05:56
板凳
JDK1.5版本以后出现的Collection的父接口Iterable。

该接口的出现,封装了iterator方法。并提供了新的语句 foreach语句。
也就是增强型的for循环


格式:
for(元素类型 变量名 : Collection集合|数组)
{

}

增强for循环和传统for循环有什么区别呢?

增强for循环有一个特点:必须要有被遍历的目标。
这个目标只能是Collection集合或者数组。

传统for循环可以定义三种表达式,来丰富循环的操作,
尤其是可以控制循环的增量。

所以,在遍历数组时,如果仅为遍历获取,两个for循环都行。
如果要对数组的元素进行操作,就需要用到指针,所以建议还是使用传统for循环。


class  Demo
{
        public static void main(String[] args)
        {

                method();



        }

        public static void method()
        {
                int[] arr = {4,5,1,7,5};

                for(int i : arr)
                {
                        System.out.println("i="+i);
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 赞一个!

查看全部评分

回复 使用道具 举报
好在循环遍历输出比较方便,不过增强for循环也有缺点,就是删除其中一个元素的时候不方便。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马