集合体系结构 Collection遍历方式 迭代器遍历 增强for遍历 增强for细节 Lambda表达式遍历

news2025/2/24 12:42:27

目录

  • 集合体系结构
  • Collection遍历方式
    • 迭代器遍历
      • 总结
    • 增强for遍历
      • 增强for细节
    • Lambda表达式遍历
      • 总结

集合体系结构

在这里插入图片描述
在这里插入图片描述
list系列集合:添加的元素式有序,可重复,有索引的

这里的有序式存取的格式式有序的,怎么存入怎么取出
set系列集合:添加的元素式无序,不重复,无索引
不重复:表示集合中不能存储重复的元素由此得出可以用这个去重
无索引:不能通过索引获得元素


在这里插入图片描述
Collection是一个接口

public static void main(String[] args) {
        //Collection是一个接口 接口不能直接创建对象
        //只能创建实现类对象  就是实现他的
        //ArrayList

        Collection<String>coll=new ArrayList<>();
        //添加元素

        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");
        System.out.println(coll);
        //[aaa, bbb, ccc]
        //细节1 list太你家元素的方法永远返回true 因为list允许重复
        //细节2 set添加元素 如果添加已存在的元素方法返回false因为set不允许重复



        //coll.clear();
        //System.out.println(coll);
        //[]打印结果
        //表示清空


        //3 删除
        coll.remove("aaa");
        System.out.println(coll);
        //[bbb, ccc] 返回值
        //因为Collection里面定义的是共性方法,所以不能通过索引删除,只能通过元素对象删除
        //方法有一个布尔值返回
        //如果删除失败表示删除的元素不存在


        //判断元素是否存在
        //contains方法底层是用的equals方法比较的 如果要比较自定义类对象 一定要再javabean类中重写equals方法.因为默认使用的是object的equals方法而他默认比较的是地址重写后才能比较对象属性
        boolean contains = coll.contains("aaa");

        System.out.println(contains);//返回值false因为aaa不存在


        boolean empty = coll.isEmpty();
        System.out.println(empty);//false
        
        int size = coll.size();
        System.out.println(size);//2
    }

Collection遍历方式

为什么要学遍历方式 因为 Collection下面的set方法不能用索引遍历但是list可以.

迭代器遍历

迭代器不依赖索引
在这里插入图片描述


    public static void main(String[] args) {

        //创建集合并添加元素

        Collection<String>coll=new ArrayList<>();

        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");

        //获取迭代器对象
        Iterator<String> it = coll.iterator();
        //迭代器好比一个指针 默认指向0索引元素


        //这个判断集合是否有元素
        while(it.hasNext()){
            String str = it.next();
            //这个是获取元素 并且移动指针到下一个元素
            System.out.println(str);
            //aaa
            //bbb
            //ccc
        }


    }

在这里插入图片描述
当迭代器已经指向最后一个元素如果再调用next获取元素的话就会报错NoSuchElementException

迭代器遍历完毕指针不会复位,如果再次调用hasNext就会返回false因为后面没有元素,如果要二次遍历需要重新获取一个迭代器对象

迭代器在遍历过程中的时候不能用集合方法添加和删除(equals)如果非要进行删除操作可以迭代器提供的remove方法.如果要增加暂时没有办法

总结

在这里插入图片描述

增强for遍历

在这里插入图片描述

    public static void main(String[] args) {


        Collection<String>coll=new ArrayList<>();

        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");

        //s是第三方变量 在循环的过程中依次白哦是集合中的每一个数据
        for(String s:coll){
            System.out.println(s);
            //aaa
            //bbb
            //ccc
        }






    }

增强for细节

在这里插入图片描述
由此证明他只是一个第三方存储变量

Lambda表达式遍历

在这里插入图片描述

  public static void main(String[] args) {

        Collection<String> coll=new ArrayList<>();

        coll.add("aaa");
        coll.add("bbb");
        coll.add("ccc");

        //匿名内部类方法

        //forEach底层原理 他内部也相当于用了一个普通的for循环 把得到的每个元素传递给下面的accept方法
        //s表示集合中的每个元素
       /* coll.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
                //aaa
                //bbb
                //ccc
            }
        });*/

        //lambds方法
        coll.forEach(s-> System.out.println(s));
        //aaa
        //bbb
        //ccc
    }

总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1159109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HQChart实战教程67-worker批量计算股票指标

HQChart实战教程67-worker批量计算股票指标 什么是Worker批量指标计算示例地址步骤1. 创建一个后台工作线程类2. 发送指标计算任务3. 接收计算结果数据对接 完整源码demo_workerthread_sina.htmlhqchart_worker_sina.js HQChart插件源码地址 什么是Worker Worker 接口是 Web W…

DDoS类型攻击对企业造成的危害

超级科技实验室的一项研究发现&#xff0c;每十家企业中&#xff0c;有四家(39%)企业没有做好准备应对DDoS攻击&#xff0c;保护自身安全。且不了解应对这类攻击最有效的保护手段是什么。 由于缺乏相关安全知识和保护&#xff0c;使得企业面临巨大的风险。 当黑客发动DDoS攻击…

PS新手教程-如何使用PS把图片置入另一张图片里

如何使用PS把图片置入另一张图片里&#xff1f;给大家介绍如何使用PS把图片置入另一张图片里&#xff0c;一起来看看吧。 1.打开ps软件&#xff0c;按快捷键CtrlO键&#xff0c;弹出打开对话框&#xff0c;选中一张图片&#xff0c;单击“打开”按钮。 2.在菜单栏“文件”中&a…

ubuntu(18.04)中架设HiGlass docker镜像服务,已尝试mcool、bedpe、wig格式文件

前言 使用到的软件 docker 文档 &#xff1a; https://www.docker.com/ HiGlass 文档&#xff1a;http://docs.higlass.io/higlass_docker.html#running-locally https://github.com/higlass/higlass-dockerhiglass-docker 地址&#xff1a;https://github.com/higla…

模型应用系实习生-模型训练笔记(更新至线性回归、Ridge回归、Lasso回归、Elastic Net回归、决策树回归、梯度提升树回归和随机森林回归)

sklearn机械学习模型步骤以及模型 一、训练准备&#xff08;x_train, x_test, y_train, y_test&#xff09;1.1 导包1.2 数据要求1.21 导入数据1.22 数据类型查看检测以及转换1.22 划分数据 二、回归2.1 线性回归2.2 随机森林回归2.3 GradientBoostingRegressor梯度提升树回归2…

工业4G路由器桥接多网络,提升工业环境网络覆盖

一款专为工业环境应用所设计的物联网通讯设备“工业4G路由器”&#xff0c;它具有多种功能和特性。其中之一就是桥接功能&#xff0c;在工业领域中被广泛应用并起着重要的通信作用。 桥接功能是指工业4G路由器通过无线网络的方式&#xff0c;为不同的工业设备提供网络并将其连…

基于人工电场算法的无人机航迹规划-附代码

基于人工电场算法的无人机航迹规划 文章目录 基于人工电场算法的无人机航迹规划1.人工电场搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用人工电场算法来优化无人机航迹规划。 …

解决【spring boot】Process finished with exit code 0的问题

文章目录 1. 复现错误2. 分析错误3. 解决问题 1. 复现错误 今天从https://start.spring.io下载配置好的spring boot项目&#xff1a; 启动后却报出如下错误&#xff1a; 即Process finished with exit code 0 2. 分析错误 Process finished with exit code 0翻译成中文进程已完…

注册中心ZK、nameServer、eureka、Nacos介绍与对比

前言 注册中心的由来 微服务架构是存在着很多跨服务调用,每个服务都存在着多个节点,如果有多个提供者和消费者,当提供者增加/减少或者消费者增加/减少,双方都需要感知发现。所以诞生了注册中心这个中间件。 市面上有很多注册中心,如 Zookeeper、NameServer、Eureka、Na…

SaaS可配置性设计要点

1 引言 考虑到系统SaaS需求&#xff0c;就成熟的SaaS应用而言&#xff0c;元数据服务是为用户提供定制和配置应用、满足其特定需求的主要手段。 可配置能力主要反映在这4个方面&#xff1a;1 程序外观&#xff1b;2 工作流程与业务规则&#xff1b;3 数据模型&#xff1b…

docker 存储目录迁移

参考&#xff1a;【Docker专题】WSL镜像包盘符迁移详细笔记 - 掘金 docker迁移 一 默认目录 Windows版本&#xff08;Windows 10 wsl 2&#xff09;docker 默认程序安装到c盘&#xff0c;数据存放于 C:\Users\当前用户名\AppData\Local\Docker\wsl\data\ext4.vhdx 这样会导致…

多机多卡分布式训练

1. 环境搭建 分布式训练框架&#xff1a;acceleratedeepspeedpdsh(可有可无)基础环境&#xff1a;cuda、显卡驱动、pytorch 1.1 安装相关包 cuda安装&#xff1a;参考官网安装步骤 wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-…

python raise语句的两种用法

python raise语句的两种用法 1、主动抛出异常的方法是使用 raise 语句&#xff1a; raise ValueError()2、可以同时指明错误原因&#xff1a; raise ValueError("输入值不符合要求")**3、这个函数没有处理可能出错的情况。**比如函数的age参数不能随意取值&#x…

呵护笔记本屏幕,同时获得更全方位的隐私保护

之前看到很多人都在给手机贴防窥膜&#xff0c;但是我试过之后觉得效果并不好。其实&#xff0c;防窥膜这个东西用在笔记本上会更实用一些。特别是那些经常在公共场所办公的朋友&#xff0c;比如我。最近我发现了一款威宝的防窥膜&#xff0c;质量非常靠谱。如果你也有同样的需…

天体学爱好者基础知识-太阳系//未完待续,业余者的学习

难过的时候&#xff0c;仰望天空吧&#xff0c;人类有时候&#xff0c;做的事情真的太愚昧且无聊了&#xff0c;渺小的尘埃&#xff0c;也可以飘际宇宙。 太阳系-八大行星 卫星围绕着恒星公转。行星必须围绕着恒星公转。 什么是行星&#xff1f;行星和恒星、卫星有什么区别&am…

qt5使用QWebEngineView崩溃的问题

在使用QWebEngineView加载崩溃 需要把下图的文件放入exe文件中

7年经验之谈 —— 常用的接口抓包工具和接口测试工具!

一、接口 统称为API&#xff0c;它是指程序与程序之间的对接、交接。 二、接口测试 它主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点&#xff0c;主要是为了检验不同组件&#xff08;模块&#xff09;之间数据的传递是否正确&#xff0c;同时接口测试还要测…

Google play开发者账号被封的几种常见原因及相关解决思路

在Google paly上&#xff0c;每天都有大量的应用被成功发布&#xff0c;同时也有很多开发者账号被封禁。特别是在今年的十月份之前&#xff0c;谷歌的"封号潮"给很多开发者带来了沉重的打击。不过&#xff0c;令人欣慰的是&#xff0c;自十月份之后&#xff0c;情况逐…

518抽奖软件,是否支持作弊~内定~指定中奖人~设置范围

518抽奖软件简介 518抽奖软件&#xff0c;518我要发&#xff0c;超好用的年会抽奖软件&#xff0c;简约设计风格。 包含文字号码抽奖、照片抽奖两种模式&#xff0c;支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 主打纯净&#xff0c;不可作弊 市面上&…

【C语言】备战校赛Day1

日期:11.1 星期二 L1-001 Hello World 题目描述 这道超级简单的题目没有任何输入。 你只需要在一行中输出著名短句“Hello World!”就可以了。 输入样例: 无 输出样例: Hello World! 解题代码 int main() {printf("Hello World!");return 0; } 该题较为简单,但要注…