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

目录

  • 集合体系结构
  • 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
    }

总结

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c# .net6 在线条码打印基于

条码打印基于:BarTender、ORM EF架构 UI展示&#xff1a; 主页代码&#xff1a; using NPOI.OpenXmlFormats.Spreadsheet; using ServerSide.Models; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawi…

web:[GYCTF2020]Blacklist

题目 点开靶机&#xff0c;页面显示为 查看源码 没有其他线索 先提交1试一下 猜测是sql注入&#xff0c;先测试 同时注意到url 提交为3-1&#xff0c;发现页面回显为空白 可以判断为字符型注入 输入select&#xff0c;看是否存在回显 回显了黑名单限制的关键字 但是发现没有…

用rust写web服务器笔记(11/1)

文章目录 一、创建一个具有监听链接功能web服务器二、读取请求内容三、编写web服务器返回网页(编写响应)四、编写web服务器有条件的返回网页五、编写多线程的web服务器六、用线程池实现web服务器七、实现线程池清除的web服务器八、读取文件 rust官网文档地址&#xff1a;https:…

QMI8658A_QMC5883L(9轴)-EVB 评估板——索引博文

0.前言 【初见姿态传感器】 在做一个4轴飞行器的时候了解到有这样一个可以控制飞行器姿态的传感器&#xff0c;而后在哔哩哔哩看到利用姿态传感做很多很好玩的作品。目前在自己的本职工作中广泛会用姿态传感器IMU的应用。 1.博文索引 【基础内容】 【QMI8658 - 姿态传感器学习…

基于图神经网络的联邦学习跨企业推荐

Federated Learning-Based Cross-Enterprise Recommendation With Graph Neural Networks 论文试图解决什么问题 该论文试图解决跨企业推荐系统中存在的数据共享和用户隐私保护的问题。在许多小型和中型企业中&#xff0c;由于资源有限&#xff0c;无法提供足够的数据来进行大…

java基础之IO操作

用户进程发起请求&#xff0c;内核接收到请求后&#xff0c;从I/O设备中获取数据到buffer中&#xff0c;再将buffer中的数据copy到用户进程的地址空间&#xff0c;该用户进程获取到数据后再响应客户端。 数据输入到buffer需要时间&#xff0c;从buffer复制数据至进程也需要时间…

服务器遭受攻击如何处理(记录排查)

本文的重点是介绍如何鉴别安全事件以及保护现场的方法&#xff0c;以确保服务器负责人能够在第一时间对安全攻击做出反应&#xff0c;并在最短时间内抵御攻击或减少攻击所带来的影响。 在服务器遭遇疑似安全事件时&#xff0c;通常可以从账号、进程、网络和日志四个主要方面进…

onlyoffice 二次开发 连接器(connector) 表单填(Filling out the form) jsApi级别操作文档

阅读须知&#xff1a;本文针对有对word/excel进行js操作的需求 本次改造基于V7.3.3进行&#xff0c;已经更新进入docker。 小伙伴们须知&#xff1a;改造后的office docker需要付费&#xff08;875元&#xff09;&#xff0c;等于wps一个月费用 欢迎大家一起交流&#xff1a;V&…

面经(面试经验)第一步,从自我介绍开始说起

看到一位同学讲自己的面试步骤和过程&#xff0c;我心有所感&#xff0c;故此想整理下面试的准备工作。以便大家能顺利应对面试&#xff0c;通过面试... 求职应聘找工作&#xff0c;面试是必然的关卡&#xff0c;如今竞争激烈呀&#xff0c;想要得到自己喜欢的工作&#xff0c…

基于springboot实现学生考勤管理系统【项目源码+论文说明】

基于springboot实现学生考勤管理系统演示 摘要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&am…

敲敲云零代码平台超实用表单设计技巧推荐,分分钟玩转零代码

敲敲云是一个APaaS零代码云平台&#xff0c;帮助企业快速搭建个性化业务应用。用户不需要编码就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用&#xff0c;打通企业内部数据。平台拥有完善的表单引擎、流程引擎、仪表盘等。 有时我们在添加明细表时&#xff0…

瑞数专题五

今日文案&#xff1a;焦虑&#xff0c;想象力过度发酵的产物。 网址&#xff1a;https://www.iyiou.com/ 专题五主要是分享瑞数6代。6代很少见&#xff0c;所以找理想哥要的&#xff0c;感谢感谢。 关于瑞数作者之前已经分享过4篇文章&#xff0c;全都收录在瑞数专栏中了&am…

LED显示屏的4种连接方式

全彩LED显示屏是由多块LED模组拼接起来的LED大屏幕&#xff0c;而显示屏模组是由许多的LED灯珠组装起来的。LED显示屏效果好不好&#xff0c;和LED显示屏组装有很大的关系。而显示屏的组装关键在连接方式上&#xff0c;如果连接不好将影响LED显示屏的画面质量&#xff0c;甚至会…

Rust-错误处理魔法

这篇文章收录于Rust 实战专栏。这个专栏中的相关代码来自于我开发的笔记系统。它启动于是2023年的9月14日。相关技术栈目前包括&#xff1a;Rust&#xff0c;Javascript。关注我&#xff0c;我会通过这个项目的开发给大家带来相关实战技术的分享。 我们写的代码主要有两部分&am…

linux 安装 elasticsearch 全教程

一、去 elasticsearch官网找到Linux版本的下载链接 地址https://www.elastic.co/cn/downloads/elasticsearch 二、在linux 中用wget下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.10.4-linux-x86_64.tar.gz三、下载成功后解压文件 tar -x…

Windows 开启 Kerberos 的火狐 Firefox 浏览器访问yarn、hdfs

背景&#xff1a;类型为IPA或者MIT KDC&#xff0c;windows目前只支持 firefoxMIT Kerberos客户端的形式&#xff0c;其他windows端浏览器IE、chrome、edge&#xff0c;没有办法去调用MIT Kerberos Windows客户端的GSSAPI验证方式&#xff0c;所以均无法使用 Windows 开启 Kerb…

驱动开发11-2 编写SPI驱动程序-点亮数码管

驱动程序 #include <linux/init.h> #include <linux/module.h> #include <linux/spi/spi.h>int m74hc595_probe(struct spi_device *spi) {printk("%s:%d\n",__FILE__,__LINE__);char buf[]{0XF,0X6D};spi_write(spi,buf,sizeof(buf));return 0; …

基于51单片机的智能手机充电器设计

**单片机设计介绍&#xff0c;1660【毕设课设】基于51单片机和MAX1898的智能手机充电器设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 51单片机智能手机充电器设计介绍 51单片机智能手机充电器是一种可以实现智能快速充电的…

OpenAI将推出ChatGPT Plus会员新功能,有用户反馈将支持上传文件和多模态

&#x1f989; AI新闻 &#x1f680; OpenAI将推出ChatGPT Plus会员新功能&#xff0c;有用户反馈将支持上传文件和多模态 摘要&#xff1a;OpenAI为ChatGPT Plus会员推出了一些新功能&#xff0c;包括上传文件、处理文件和多模态支持。用户不再需要手动选择模式&#xff0c;…

自动化测试mock模块使用详解介绍

mock简介 py3已将mock集成到unittest库中为的就是更好的进行单元测试简单理解&#xff0c;模拟接口返回参数通俗易懂&#xff0c;直接修改接口返回参数的值官方文档&#xff1a;unittest.mock --- 模拟对象库 — Python 3.11.3 文档 mock作用 解决依赖问题&#xff0c;达到解…