增强for循环

书写格式:
for (循环变量类型 循环变量名称 : 要被遍历的对象) {
循环体
}
或者
for(集合或者数组中的数据类型 变量名:集合或者数组的对象名){
输出变量名;
}
增强for循环感觉类似迭代器,顺着数据遍历一次,大部分情况下可以取代迭代器。

    //定义一个数组,静态初始化
        int[] arr = {11,22,33,44,55} ;
    //使用增强for遍历
        for(int i :arr){
            System.out.println(i);
        }

        System.out.println("-------------------");

1.arr就是为 要被遍历的对象,可以是数组,集合
2.循环变量类型就是这个arr数组的数据类型,即int
3.循环变量名称,这个可以自己定义。在嵌套遍历中,最好使用望文生义的名字,方便使用

注:对象名不是能是空值,否则会报异常,空指针异常。所以在有一条编程原则就是,对对象要做非空判断,防止出现空指针异常。


嵌套遍历(集合的)
最内层是*类构建的元素,元素放置在一个小集合里,而小集合又是大集合中元素,形成一个双层的嵌套。
例:学生A,B,C分别在高一1,2,3班。1、2、3班级是小集合,学生是*类构建的元素。1、2、3班又在高一这个大集合中,每个班是大集合的元素,方便理解。

测试类:
package Day14_Nested_EnhanceFor;

import java.util.ArrayList;

/**
 * @author Aoman_Hao
 */
public class MainTest {

    public static void main(String[] args) {
        //创建大集合对象
        ArrayList> ARR = new ArrayList>();
        //创建Arraylist集合对象
        ArrayList array = new ArrayList();
        //创建Star类对象
        Star s1 = new Star("刘诗诗", 22, "女");
        Star s2 = new Star("大个", 23, "男");
        Star s3 = new Star("李诗诗", 26, "女");
        Star s4 = new Star("王丽", 24, "男");
        Star s5 = new Star("A诗诗", 22, "女");

        array.add(s1);
        array.add(s2);
        array.add(s3);
        array.add(s4);
        array.add(s5);

        ARR.add(array);
        System.out.println("姓名\t年龄\t性别");
        //增强for循环遍历
        for(ArrayList ar : ARR ){
            for(Star st:array){
                System.out.println(st.getName()+"\t"+st.getAge()+"\t"+st.getGender());
            }
        }

    }

}

对象类:
package Day14_Nested_EnhanceFor;
/**
 * @author Aoman_Hao
 */
public class Star {
private String name;
private int age;
private String gender;
public Star() {
    super();
    // TODO Auto-generated constructor stub
}
public String getName() {
    return name;
}
public void setName(String name) {
}
public int getAge() {
    return age;
}
public void setAge(int age) {
}
public String getGender() {
    return gender;
}
public void setGender(String gender) {
}
public Star(String name, int age, String gender) {
    super();
    this.name = name;
    this.age = age;
    this.gender = gender;
}
}

输出:
姓名  年龄  性别
刘诗诗 22  女
大个  23  男
李诗诗 26  女
王丽  24  男
A诗诗 22

增强for循环(For-Each)循环的缺点:丢掉了索引信息。

  当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息。


你可能感兴趣的:(增强for循环)