J2SE 1.5提供了另一种形式的for循环,也称for each借助这种形式的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循环,现在可以用一种更简单地方式来进行遍历的,如果在for循环里面我们要遍历的那个集合或数组,那么我们需要声明一个跟他类型一样的集合或数组用来装 冒号后面的 就是 你要遍历的对象,这样就可以简单的来遍历一个数组或集合了!
这个是jdk1.5新特性,只有1.5和以后版本的for可以这样写,其实就是遍历slist里面的内容,不用以前那么定义一个int i i=slist.size()了
Stu o这不很明显么,是声明了一个Stu类型的对象,也就不用如以前一样在循环体里写Stu o=list.get(i);了
o是Stu的对象。
遍历。
for each循环可以用于遍历数组中的所有元素,这里的o可以在每次迭代时引用数组中的各个元素...这种语法是为方便完全遍历而添加的。
上面已经说得很清楚了!!