Java && 增强型for循环

增强型for循环

特点:

书写简洁。
对集合进行遍历,只能获取集合元素,不能对集合进行操作,类似迭代器的简写形式,但是迭代器可以对元素进行remove操作(ListIterator可以进行增删改查的操作)。

经典的for循环与增强型for循环的不同:

整体来说:

增强型for循环使用起来比较方便,代码也比较简单,如果只是操作集合中元素的而不使用索引的话,建议用此方法。
对于普通for循环,如果需要使用索引进行其它操作的话,建议用这个。

格式上:

经典的for循环:

for(初始化部分;条件判断部分;条件更新){
    
    
    循环体;
}

增强型for循环的语法:

for(元素类型 变量名:可增强迭代的内容){
    
    
    访问变量名;
}

可增强迭代的内容: 数组、集合。

        int[] arr = {
    
    1,2,3,4,5};

        for(int item :arr){
    
    
            //特点: 在循环体中无法访问位置信息。
            System.out.println(item);
        }

        //Arrays工具类中,存在一个方法来进行数组转集合。
        List<int[]> ints = Arrays.asList(arr);
        //集合的元素类型是: int数组。
        for(int[] item:ints){
    
    
            System.out.println(Arrays.toString(item));
        }

注意事项:

  • 本质是使用迭代器来进行

  • 迭代前需要人为判断null的问题,否则报空指针异常。

所以,增强型for循环一般会配合一个if检查一起使用。
在迭代过程中,不能改变集合的长度。

   if(arr!=null) {
    
    
        for (int item : arr) {
    
    
            //特点: 在循环体中无法访问位置信息。
            System.out.println(item);
        }
    }

应用:

需要循环数组结构的数据时,建议使用普通for循环,因为for循环采用下标访问,对于数组结构的数据来说,采用下标访问比较好。

需要循环链表结构的数据时,一定不要使用普通for循环,这种做法很糟糕,数据量大的时候有可能会导致系统崩溃。

区别:

增强for循环必须有被遍历的目标(如集合或数组)。
普通for循环遍历数组的时候需要索引
增强for循环不能获取下标,所以遍历数组时最好使用普通for循环。

猜你喜欢

转载自blog.csdn.net/weixin_47371330/article/details/107545603