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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-唐磊 中级黑马   /  2012-12-6 14:50  /  3400 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马-唐磊 于 2012-12-6 15:05 编辑

增强for循环大家应该都很熟悉吧,但在哪些情况下必须得用普通for循环,大家可以说说看,(注明:可在英文JDK文档找到些答案)

评分

参与人数 1黑马币 +10 收起 理由
杨千里 + 10 神马都是浮云 毕老师的视屏里有.

查看全部评分

5 个回复

正序浏览
增强for循环其实现原理就是实现了Iterator接口,所以凡是实现了此接口或有索引的情况下都可以使用。不过由于Iterator本身的原因,在迭代过程中不能改变对象,这一点需要注意

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 黑马-唐磊 于 2012-12-6 17:16 编辑

还有一点也非常重要,在以后项目中也许会碰到,希望对大家有用
public static void main(String[] args){
     String[] s1={"qdsd","werf "};
     String[] s2={"weeeee","ewrfdf"}
     for(int i=0;i<s1.length;i++){
     System.out.println("s1+"..."+s2)
     }
  }
}
像这种遍历s1和s2时就不能用增强for循环,s1和s2这两个集合又被称作为平行集合,因为这两个集合数据大小是一样的,都是两个长度,所以用增强for循环同时遍历就实现不了,因为它没有下标概念。就只能用普通for循环。所以就有了这么一个概念:增强for循环不能用于遍历平行集合,在以后项目会经常用到,现在我做项目是定义一个新的缓存就用到这,后来查了下英文文档才知道有这么回事

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
数组或实现了iterable接口的集合类
回复 使用道具 举报
当在循环的过程中需要对迭代内容进行其它操作时,要使用普通for循环!
回复 使用道具 举报
增强for循环内部其实是调用了Iterato接口,只有实现了这个接口的类或接口才能使用,当然数组是默认可以使用的...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马