体验J2SE 1.5新特性之增强For循环
第一种for循环对于遍历数组,这个循环一般是采取这样的写法:
清单1:遍历数组的传统方式
/* 建立一个数组 */int[] integers = {1, 2, 3, 4};/* 开始遍历 */for (int j = 0; j < integers.length; j++) {int i = integers;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循环,现在可以用一种更简单地方式来进行遍历的工作。
第二种for循环
不严格的说,Java的第二种for循环基本是这样的格式:
for (循环变量类型 循环变量名称 : 要被遍历的对象) 循环体
借助这种语法,遍历一个数组的操作就可以采取这样的写法:
清单3:遍历数组的简单方式
/* 建立一个数组 */int[] integers = {1, 2, 3, 4};/* 开始遍历 */for (int i : integers) {System.out.println(i);/* 依次输出“1”、“2”、“3”、“4” */}
这里所用的for循环,会在编译期间被看成是这样的形式:
清单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循环,看成是对应的传统形式,所以不必担心出现性能方面的问题。
页:
[1]