JAVA提高之增强型for循环

一、用途

只能用于简单遍历并读取数组(数组)的内容

二、缺点

  1. 对数组,不能方便的访问下标值
  2. 对集合,与使用Interator(迭代器)相比,不能方便的删除集合中的内容

三、实例

  • 语法

    //对数组
    for (Type value : array) {
        expression value;
    }
    //对集合
     for (Type value : 集合) {
        expression value;
    }
    
  • 遍历数组

    原始:

    void someFunction ()
    {
        int[] array = {1,2,5,8,9};
        int total = 0;
        for (int i = 0; i < array.length; i++)    
            total += array[i];     
        System.out.println(total);
     }
    

    使用增强型for循环:

    void someFunction ()
    {
        int[] array = {1,2,5,8,9};
        int total = 0;
        for (int n : array)
       { 
           total += n;
        }
        System.out.println(total);
    }
    

    缺点:

    1. 只能顺次遍历所有元素,无法实现较为复杂的循环,如在某些条件下需要后退到之前遍历过的某个元素;

    2. 循环变量(i)不可见,如果想知道当前遍历到数组的第几个元素,只能这样写:

       int i = 0;
       for (int n : array) {
           System.out.println("This " + i + "-th element in the array is " + n);
           i++;
      }
      
  • 遍历集合

    原始

    void someFunction ()
    {
        List list = new ArrayList();
        list.add("Hello ");
        list.add("Java ");
        list.add("World!");
        String s = "";
        for (Iterator iter = list.iterator(); iter.hasNext();)
       {
           String temp= (String) iter.next();//强制类型转换
           s += temp;
        }
        System.out.println(s);
     }
    

    使用增强型for循环:

    void someFunction ()
    {
        List list = new ArrayList();
        list.add("Hello ");
        list.add("Java ");
        list.add("World!");
        String s = "";
        for (Object o : list)
       {
           String temp = (String) o;
           s += temp;
       }
       System.out.println(s);
    }
    

    结合"泛型"

    void someFunction ()
    {
        List list = new ArrayList();
        list.add("Hello ");
        list.add("Java ");
        list.add("World!");
        String s = "";
        for (String temp : list)//这里已经进行了强制类型转换
       {
           s += temp; //省去了对强制类型转换步骤
       }
       System.out.println(s);
    }
    
  • 总结:

    综上所述,Java 5.0中提供的增强的for循环——for/in(for each)循环能让我们的代码更加简洁,让程序员使用时更加方便,但是也有它的局限性,所以一定要根据实际需要有选择性地使用,不要盲目追求所谓的“新特性”。

来自:参考资料

猜你喜欢

转载自blog.csdn.net/qq_38338069/article/details/83547503