- 3
- 0
- 约7.33千字
- 约 11页
- 2017-05-12 发布于河南
- 举报
J2SE 1.5中增强for循环详解
J2SE 1.5中增强for循环详解
J2SE 1.5提供了另一种形式的for循环。借助这种形式的for循环,可以用更简单地方式来遍历数组和Collection等类型的对象。本文介绍使用这种循环的具体方式,说明如何自行定义能被这样遍历的类,并解释和这一机制的一些常见问题。
在Java程序中,要“逐一处理”——或者说,“遍历”——某一个数组或Collection中的元素的时候,一般会使用一个for循环来实现(当然,用其它种类的循环也不是不可以,只是不知道是因为for这个词的长度比较短,还是因为for这个词的含义和这种操作比较配,在这种时候for循环比其它循环常用得多)。
对于遍历数组,这个循环一般是采取这样的写法:
清单1:遍历数组的传统方式
/* 建立一个数组 */int[] integers = {1, 2, 3, 4};/* 开始遍历 */for (int j = 0; j integers.length; j++) {int i = integers[j];System.out.println(i);}
而对于遍历Collection对象,这个循环则通常是采用这样的形式:
清单2:遍历Collection对象的传统方式
/* 建立一个Collection */String[] strings = {A, B, C, D};Collection stringList = java.util.Arrays.asList(strings);/* 开始遍历 */for (Iterator itr = stringList.iterator(); itr.hasNext();) {Object str = itr.next();System.out.println(str);}
而在Java语言的最新版本——J2SE 1.5中,引入了另一种形式的for循环。借助这种形式的for循环,现在可以用一种更简单地方式来进行遍历的工作。
1. 第二种for循环
不严格的说,Java的第二种for循环基本是这样的格式:
for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体
借助这种语法,遍历一个数组的操作就可以采取这样的写法:
清单3:遍历数组的简单方式
/* 建立一个数组 */int[] integers = {1, 2, 3, 4};/* 开始遍历 */for (int i : integers) {System.out.println(i);/* 依次输出“1”、“2”、“3”、“4” */}
这里所用的for循环,会在编译期间被看成是这样的形式:
1 (未取到网页内容)
清单4:遍历数组的简单方式的等价代码
/* 建立一个数组 */int[] integers = {1, 2, 3, 4};/* 开始遍历 */for (int 变量名甲 = 0; 变量名甲 integers.length; 变量名甲++) {System.out.println(变量名甲);/* 依次输出“1”、“2”、“3”、“4” */}
这里的“变量名甲”是一个由编译器自动生成的不会造成混乱的名字。
而遍历一个Collection的操作也就可以采用这样的写法:
清单5:遍历Collection的简单方式
/* 建立一个Collection */String[] strings = {A, B, C, D};Collection list = java.util.Arrays.asList(strings);/* 开始遍历 */for (Object str : list) {System.out.println(str);/* 依次输出“A”、“B”、“C”、“D” */}
这里所用的for循环,则会在编译期间被看成是这样的形式:
清单6:遍历Collection的简单方式的等价代码
/* 建立一个Collection */String[] strings = {A, B, C, D};Collection stringList = java.util.Arrays.asList(strings);/* 开始遍历 */for (Iterator 变量名乙 = list.iterator(); 变量名乙.hasNext();) {System.out.println(变量名乙.next());/* 依次输出“A”、“B”、“C”、“D” */}
这里的“变量名乙”也是一个由编译器自动生成的不会造成混乱的名字。
因为在编译期间,J2SE 1.5的编译器会把这种形式的for循环,看成是对应的传统形式,所以不必担心出现性能方面的问题。
不用“foreach”和“in”的原
您可能关注的文档
- C++_3_类与对象.doc
- c++书中例题源代码第4章.doc
- c++分支程序结构实验.doc
- C++代码编写实例.doc
- C++培训材料.doc
- C++实验三.doc
- C++教案板书1.doc
- C++程序设计实验六_101614xxx.doc
- c++程序设计基础实例教程.doc
- C++画图板.doc
- 苏教版高中高一历史必修下册第一单元02-第2课 古代世界的帝国与文明的交流 【课件】.pptx
- 苏教版高中高一历史必修下册第一单元03-单元整合·能力提升 【课件】.pptx
- 苏教版高中高一历史必修下册第二单元01-第3课 中古时期的欧洲 【课件】.pptx
- 苏教版高中高一历史必修下册第二单元02-第4课 中古时期的亚洲 【课件】.pptx
- 苏教版高中高一历史必修下册第二单元04-单元整合·能力提升 【课件】.pptx
- 苏教版高中高一历史必修下册第三单元03-单元整合·能力提升 【课件】.pptx
- 苏教版高中高一历史必修下册第二单元03-第5课 古代非洲与美洲 【课件】.pptx
- 苏教版高中高一历史必修下册第三单元01-第6课 全球航路的开辟 【课件】.pptx
- 苏教版高中高一历史必修下册第三单元02-第7课 全球联系的初步建立与世界格局的演变 【课件】.pptx
- 2026年春季学校全面工作计划PPT:骏马踏春启新篇,奋蹄致远育未来 课件(共33张PPT).pptx
最近下载
- 2026年牛津译林版中考英语新课标1500个单词背诵清单.pdf
- 疥疮诊疗中国专家共识(2026版)解读PPT课件.pptx VIP
- 《烟雾病和烟雾综合征诊断与治疗中国专家共识(2024)》解读PPT课件.pptx VIP
- 2024年改良型新药行业研究报告及未来五至十年预测分析报告.docx
- 乡镇民主生活会批评与自我批评.docx VIP
- 陕西凤翔县马家庄秦墓出土的出土陶罐.docx VIP
- 采血后预防淤青的按压方式.pptx VIP
- 纺织厂供配电系统设计.doc VIP
- 乡镇领导班子成员相互批评意见.docx VIP
- 30.XX中专职业学校“十五五”五年中长期发展规划(2026-2030年).pdf
原创力文档

文档评论(0)