03Collection的遍历方式二

发布时间 2023-10-30 13:03:48作者: ahssmy

二、增强for遍历

  • 增强for的底层就是迭代器,为了简化迭代器的代码书写的。

  • 它是JDK5之后出现的,其内部原理就是一个Iterator迭代器

  • 所有的单列表集合和数组才能用增强for进行遍历

  • 格式:

    for(元素的数据类型 变量名 : 数组或者集合){
        
    }
    
    for(String s : list){
        System.out.println(s);
    }
    

    案例:

    package com.mycollection;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    public class A06_CollectionDemo6 {
    
        public static void main(String[] args) {
           /*   Collection系列集合三种通用遍历方式:
                1.迭代器遍历
                2.增强for循环
                3.lambda表达式遍历
    
                增强for循环格式:
                for(元素的数据类型 变量名 : 集合/数组){
    
                }
    
                快速生成方式:集合名字+for 回车
            */
            //1.创建集合并添加元素
            Collection<String> coll = new ArrayList<>();
            coll.add("zhangsan");
            coll.add("lisi");
            coll.add("wangwu");
            //2.利用增强for进行遍历
            //注意点:
            //s其实就是一个第三方变量,在循环的过程中会依次表示集合中的每一个数据。
            for (String s : coll) {
                System.out.println(s);
            }
    
            //细节:修改增强for中的变量,不会改变集合中原本的数据
            for (String s : coll) {
                s="qqq";
            }
            System.out.println(coll);
        }
    }
    

    运行结果:

    1

三 、lambda表达式遍历

  • 得益于JDK8新技术Lambda表达式,提供了一种更简单、更直接的遍历集合的方式。

    方法名称 说明
    default void forEach(Consumer<? super T> action): 结合lambda遍历集合

    案例:

    package com.mycollection;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.function.Consumer;
    
    public class A07_CollectionDemo7 {
    
        public static void main(String[] args) {
           /*   Collection系列集合三种通用遍历方式:
                1.迭代器遍历
                2.增强for循环
                3.lambda表达式遍历
    
                lambda表达式:
                default void forEach(Consumer <? super T> action):
    
                consumer n.消费者,顾客,用户;食用者,使用者,消耗者
            */
            //1.创建集合并添加元素
            Collection<String> coll = new ArrayList<>();
            coll.add("zhangsan");
            coll.add("lisi");
            coll.add("wangwu");
            //2.利用匿名类内部类形式
            //底层原理
            //其实也会自己遍历集合,依次得到每一个元素
            //把得到的每个元素,传递到下面的accept
            //s依次表示集合中的每个元素。
            coll.forEach(new Consumer<String>() {  //new一个对象
                @Override
                public void accept(String s) {
                    System.out.println(s);
                }
            });
            //()->{} 形参->方法体
            coll.forEach((String s) -> {System.out.println(s);});
    
            coll.forEach(s -> System.out.println(s));
        }
    }
    

    运行结果:

    2

四、总结

  1. Collection 是单列集合的顶层接口,所有的方法被List和Set系列集合共享。
  2. 常见成员方法:
    • add、clear、remove、contains、isEmpty、size
  3. 三种通用的遍历方式:
    • 迭代器:在遍历的过程中需要删除元素,请使用迭代器。
    • 增强for、Lambda:仅仅想遍历,那么使用增强for、Lambda表达式。