(Collection)集合遍历,进阶

简介: (Collection)集合遍历,进阶

不同于以往在基础篇章所讲解的遍历方法,集合也有其他种类不同的遍历方法

主要分为三大类:

   1:迭代器遍历  public Iterator iterator<E>

                   方法:  

1> bollean hasNext()  判断下一个的集合当中是否仍然含有元素,返回值是一个bollean类型的

2>  E  next()   对于当前集合当中的元素进行逐个输出,如果使用次数过多,那么就会出现元素不存在异常

 //使用多态,将接口用实现类来进行实现
        Collection<student> stu =new ArrayList<>();
 
        stu.add(new student("张三",23));
        stu.add(new student("李四",24));
        stu.add(new student("王五",25));
 
        //1>迭代器遍历
 
        Iterator<student> iterator = stu.iterator();
 
//        boolean b = iterator.hasNext();
        //返回一个布尔类型的数值,以此判断下一个循环当中是否仍然含有元素
 
        //通常将两者结合起来,当作while循环进行使用
        while (iterator.hasNext()){
            student next = iterator.next();
            System.out.println(next);
        }

 2:for循环加强

                   for(集合对应的泛型类型 对象名称:集合)

//2>for循环加强版
        for(student x:stu){
            System.out.println(x);
        }
        //底层的源码,仍然使用的是迭代器的遍历方式

3:foreach遍历

                   集合对象名称直接进行调用:

                       num.foreach(内部需要一个接口的类型)

我们可以先使用匿名内部类(new Consumer<E> )进行对接口实现,重写。

 //3>foreach遍历
 
        stu.forEach(new Consumer<student>() {
            @Override
            public void accept(student student) {
 
            }
        });


之后再将其转变成为一个函数表达式的类型,将会变得更加的简单  (lamada)


  //3>foreach遍历
 
        stu.forEach(new Consumer<student>() {
            @Override
            public void accept(student student) {
 
            }
        });
 
 
        stu.forEach(stu1 -> System.out.println(stu1));

 

但后面两个的基础都仍然还是迭代器作为一个基础

相关文章
|
机器学习/深度学习 定位技术 Python
深入理解线性回归模型的评估与优化方法
深入理解线性回归模型的评估与优化方法
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
510 0
|
存储 供应链 安全
区块链技术在供应链管理中的应用与思考
【2月更文挑战第10天】随着区块链技术的不断发展,其在供应链管理领域的应用也日益广泛。本文将探讨区块链技术在供应链管理中的具体应用案例,并结合个人经验分享对于未来区块链技术在供应链领域的发展前景和思考。
|
缓存 前端开发 Java
去掉 if...else 的七种绝佳之法...
去掉 if...else 的七种绝佳之法...
127 0
|
前端开发 API
在项目中用ts封装axios,一次封装整个团队受益😁
这篇文章封装的axios已经满足如下功能: 无处不在的代码提示; 灵活的拦截器; 可以创建多个实例,灵活根据项目进行调整; 每个实例,或者说每个接口都可以灵活配置请求头、超时时间等。
760 0
|
SQL XML Java
自定义持久层框架—MyORMFramework(一)
自定义持久层框架—MyORMFramework(一)
193 1
|
机器学习/深度学习 人工智能 运维
如何管理人工智能风险和安全?
在大多数组织中,人工智能模型是“黑匣子”,只有数据科学家知道人工智能到底做什么。这可能会给组织带来重大风险。
如何管理人工智能风险和安全?
|
数据采集 Shell Python
Python:CrawlSpiders
Python:CrawlSpiders
168 0
Python:CrawlSpiders
|
Python
Python 技巧篇-如何避免python报错导致强制关闭窗口
Python 技巧篇-如何避免python报错导致强制关闭窗口
977 0