JDK5新特性之增强for

来源:互联网 发布:仙界网络直播间书包网 编辑:程序博客网 时间:2024/05/21 18:51

增强for

  JDK5的新特性:自动拆装箱,泛型,增强for,静态导入,可变参数,枚举  增强for:是for循环的一种。  格式:        for(元素数据类型 变量 : 数组或者Collection集合) {            使用变量即可,该变量就是元素        }  好处:简化了数组和集合的遍历。  弊端: 增强for的目标不能为null。  如何解决呢?对增强for的目标先进行不为null的判断,然后在使用。
package cn.itcast_01;import java.util.ArrayList;import java.util.List;public class ForDemo {    public static void main(String[] args) {        // 定义一个int数组        int[] arr = { 1, 2, 3, 4, 5 };        for (int x = 0; x < arr.length; x++) {            System.out.println(arr[x]);        }        System.out.println("---------------");        // 增强for        for (int x : arr) {            System.out.println(x);        }        System.out.println("---------------");        // 定义一个字符串数组        String[] strArray = { "林青霞", "风清扬", "东方不败", "刘意" };        // 增强for        for (String s : strArray) {            System.out.println(s);        }        System.out.println("---------------");        // 定义一个集合        ArrayList<String> array = new ArrayList<String>();        array.add("hello");        array.add("world");        array.add("java");        // 增强for        for (String s : array) {            System.out.println(s);        }        System.out.println("---------------");        List<String> list = null;        // NullPointerException        // 这个s是我们从list里面获取出来的,在获取前,它肯定还好做一个判断        // 说白了,这就是迭代器的功能        if (list != null) {            for (String s : list) {                System.out.println(s);            }        }        // 增强for其实是用来替代迭代器的        //ConcurrentModificationException        // for (String s : array) {        // if ("world".equals(s)) {        // array.add("javaee");        // }        // }        // System.out.println("array:" + array);    }}

练习

  需求:ArrayList存储自定义对象并遍历。要求加入泛型,并用增强for遍历。  A:迭代器  B:普通for  C:增强for  LinkedList,Vector,Colleciton,List等存储我还讲吗?不讲解了,但是要求你们练习。  增强for是用来替迭代器。
package cn.itcast_01;import java.util.ArrayList;import java.util.Iterator;public class ArrayListDemo2 {    public static void main(String[] args) {        // 创建集合对象        ArrayList<Student> array = new ArrayList<Student>();        // 创建学生对象        Student s1 = new Student("林青霞", 27);        Student s2 = new Student("貂蝉", 22);        Student s3 = new Student("杨玉环", 24);        Student s4 = new Student("西施", 21);        Student s5 = new Student("王昭君", 23);        // 把学生对象添加到集合中        array.add(s1);        array.add(s2);        array.add(s3);        array.add(s4);        array.add(s5);        // 迭代器        Iterator<Student> it = array.iterator();        while (it.hasNext()) {            Student s = it.next();            System.out.println(s.getName() + "---" + s.getAge());        }        System.out.println("---------------");        // 普通for        for (int x = 0; x < array.size(); x++) {            Student s = array.get(x);            System.out.println(s.getName() + "---" + s.getAge());        }        System.out.println("---------------");        // 增强for        for (Student s : array) {            System.out.println(s.getName() + "---" + s.getAge());        }    }}
0 0