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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 梁宝昌 中级黑马   /  2014-8-28 20:36  /  1145 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

增强for和普通for有什么区别呢 有些不理解

8 个回复

倒序浏览
增强for 是对数组 集合 IO流的元素进行遍历的 它是基于迭代器的 简单 方便  普通for一般对基本类型的进行操作 也可以对数组 集合  IO遍历但是麻烦
回复 使用道具 举报
高级for是JDK1.5才出来的新特性,它的底层还是基于迭代器的原理,可以对集合,数组进行遍历;
普通for循环是则可以对集合,数组或者是完成任何循环的操作,而且指定循环次数,在遍历的时候需要获取数组,集合的长度,高级for则就不需要获取长度,直接对元素进行操作,这点比较优越;高级for对集合操作的时候会发生并发修改异常,普通for则没有;应该就这样了吧!!!

评分

参与人数 1黑马币 +1 收起 理由
天黑偷牛 + 1 回答的很好呀

查看全部评分

回复 使用道具 举报
在语法特点上来看:
普通for循环
for(int i=0;i<num;i++){  
   执行代码;//通过下标索引
  }
增强for循环
for (Type  t:数组和实现了java.lang.Iterable接口的类的实例){
     执行代码;
     //尽可通过t逐个访问实例中的数据,无法使用下表,只读
}
回复 使用道具 举报
在后面还有增强for?还是就前面的一些啊,不会还有复杂的吧,紧张学习中
回复 使用道具 举报
以集合来举例
for( 集合中元素类型  类型对象: 集合)
{
     对这个对象操作
}

如: ArrayList<String> lists = new  ArrayList<String>();
for(String list : lists)
{
    System.out.println(list);   //普通for(遍历的下标){ arr[x]  }
}
回复 使用道具 举报
高级for有局限性,必须有被遍历的目标
回复 使用道具 举报
idency 高级黑马 2014-8-28 22:50:26
8#
首先格式上就不一样!再者增强for是为了替换掉Iterator而出现的!在不需要操作角标的迭代中,使用增强for遍历更加方便和简单!
回复 使用道具 举报
增强for不能像普通for一样根据角标操作相邻的数组元素,但是对于简单的按顺序遍历很好用,在集合中用比iterator方便很多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马