Collction的三种遍历

目录

集合体系结构

迭代器遍历:

增强for遍历:

Lambda表达式遍历


集合体系结构

List 系列集合 : 添加元素是有序的、可重复的,有索引的;

有序的:存和取的顺序是一样的;

Set 系列集合 : 添加元素是无序的、不重复,无索引;

无序的:存和取的顺序可能是不一样的;

Collection 是单列集合的祖宗接口,它的功能是全部单列集合都可以继承使用的

注意点 : Collection是一个接口

所以说,我们学习它的方法时,只能创建他的实现类对象

实现类:ArrayList

判断元素是否包含

底层是依赖equals方法进行判断对象是否存在的

如果时自定义对象,没有重写equals方法,那么默认使用Object类中的equals方法进行判断,而Object类中equals方法,依赖地址值进行判断,而我们想要比的是属性,因此需要重写equals方法

(快捷键 alt + insert)具体快捷键根据自己的设置

Collction的遍历方式(通用)

迭代器遍历:

不依赖索引

迭代器在Java中的类是Iterator,迭代器是集合专用的遍历方式

细节注意;

1.如果当前位置没有元素,还要强行获取,会报错NoSuchElementException

2.迭代器遍历完毕,指针不会复位(如果要再次历遍集合,只能再获取一个新的迭代器对象)

3.循环中只能用一次next方法

4.迭代器遍历,不能用集合的方法进行增加或删除(如果实在要删除可用迭代器提供的remove方法删除,添加暂时没有办法)

增强for遍历:

增强for的底层就是迭代器,为了简化迭代器的代码书写的。
它是JDK5之后出现的,其内部原理就是一个Iterator迭代器
所有的单列集合和数组才能用增强for进行遍历。


格式: 
for(元素的数据类型  变量名:  数组或者集合){

}

细节注意; 修改增强for中的变量,不会改变集合中原本的数据

Lambda表达式遍历

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

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

相关文章

综合实验1

一、配置IP地址 [AR1]int g0/0/0 [AR1-GigabitEthernet0/0/0]ip add 192.168.1.254 24 [AR1-GigabitEthernet0/0/0]int se4/0/0 [AR1-Serial4/0/0]ip add 15.1.1.1 24 [AR1-Serial4/0/0] [AR2]int g0/0/0 [AR2-GigabitEthernet0/0/0]ip add 192.168.2.254 24 [AR2-Giga…

Sui与Revolut合作,加速Sui区块链教育和采用

作为全球一体化金融平台,Revolut与Sui合作推出了最新的加密货币学习课程。Revolut拥有全球超过4,000万用户,提供一系列数字银行产品和服务,包括购买和出售加密货币,其中包括SUI。 Revolut的学习计划为其用户提供有关Sui的教育&am…

蓝桥杯嵌入式学习笔记(7):ADC程序设计

目录 前言 1. ADC原理 1.1 主要特性 1.2 模拟输出电路图 2. 使用CubeMX进行源工程的配置 2.1 引脚配置 2.2 配置AD1 2.3 配置AD2 2.4 配置时钟 3. 代码编程 3.1 预备工作 3.2 bsp_adc.h文件编写 3.3 bsp_adc.c文件编写 3.4 main.c编写 3.4.1 时钟函数配置 3…

java子集(力扣Leetcode78)

子集 力扣原题链接 问题描述 给定一个整数数组 nums,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。可以按任意顺序返回解集。 示例 示例 1: 输入:nums [1,2,3] 输出&#x…

python3将exe 转支持库错误 AssertionError: None does not smell like code

exe -> pyc包(*.exe_extracted) 安装反编译工具 exe反编译工具:pyinstxtractor.py下载:https://sourceforge.net/projects/pyinstallerextractor/ python pyinstxtractor.py hello.exe包反编译 懒的写!!! 这有详…

英语广场期刊投稿发表论文

《英语广场》是由国家新闻出版总署批准的正规期刊,杂志本着“轻松读原作,快乐学英语”的宗旨,倡导“寓学于乐”的学习理念,其活泼的办刊风格和优秀的文章选材受到读者特别是广大中学生的广泛欢迎,取得了良好的社会效益…

redis 的设计与实现(三)——对象

1. 前言: 在第一章节我们了解到了,redis底层所涉及的数据结构,但是这并非是离我们最近的一层,在此之上,redis实现了一层对象与我们交互。我们在本篇内容中将了解到: 对象对应的实现redis一些常用特性的实现…

数字化坚鹏:小熊电器面向数字化转型的大数据顶层设计实践培训

小熊电器面向数字化转型的大数据顶层设计实践培训圆满结束 ——努力打造“数据技术营销”三轮驱动的数字化领先企业 小熊电器股份有限公司由李一峰创立于2006年,是一家专业从事创意小家电研发、设计、生产和销售的实业型企业。2019年8月23日正式在深交所挂牌上市。…

rust使用Command库调用cmd命令或者shell命令,并支持多个参数和指定文件夹目录

想要在不同的平台上运行flutter doctor命令,就需要知道对应的平台是windows还是linux,如果是windows就需要调用cmd命令,如果是linux平台,就需要调用sh命令,所以可以通过cfg!实现不同平台的判断,然后调用不同…

【21-40】操作系统基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【21-40】操作系统基础知识(非常详细)从零基础入门到精通,看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用44、程序从堆中动态分配内存时,虚拟内存上怎么操作的45、常见的几种磁盘调度算法1. 先来…

codesys通过moudbus TCP连接西门子1214c,西门子做客户端

思路在codesys中发送数据到西门子,西门子原封不动的将数据传回。 1.首先配置codesys; 我设置了500个,但是好像发不这么多,只能120多个。因为什么来我忘了。但是这里不影响。 2.配置映射: 3.写代码 PROGRAM PLC_PRG VARarySendDa…

URL编码:原理、应用与安全性

title: URL编码:原理、应用与安全性 date: 2024/3/29 18:32:42 updated: 2024/3/29 18:32:42 tags: URL编码百分号编码特殊字符处理网络安全应用场景标准演变未来发展 在网络世界中,URL(统一资源定位符)是我们访问网页、发送请求…

Laya1.8.4 UI长按选择对应位置释放技能

需求: 需要实现拖拽摇杆选择技能释放位置,释放技能。 原理:首先拆分需求,分为两部分,UI部分和场景部分,UI部分需要实现长按效果,长按后又要有拖动效果,将官方文档的示例代码改了改…

HANA-公司间销售ICS-IDOC系统配置-保姆级配置文档

HANA公司间销售ICS-IDOC系统配置—保姆级配置文档 在项目实施过程中经常会遇到关联方交易的问题,有公司间采购的业务场景,也会存在公司间销售的业务场景,本文将着重讲解公司间销售在SAP系统中的实现场景。很多公司会在香港设置一个公司用于对外的销售接单,然后将接到的销售…

企业微信知识库:从了解到搭建的全流程

你是否也有这样的疑惑:为什么现在的企业都爱创建企业微信知识库?企业微信知识库到底有什么用?如果想要使用企业微信知识库企业应该如何创建?这就是我今天要探讨的问题,感兴趣的话一起往下看吧! | 为什么企业…

小白python爬虫基础教程(看这一篇就完了)

爬虫的五个步骤: 1)需求分析,找到需求相关的网址 2)获取网址的返回信息(urllib,requests) 3)定位需要的信息所在位置(re正则表达式,XPATH, CSS selector) 4&#xff…

argo rollout使用

一、前言 argorollout是比argocd更高级的发布工具,其中包含自动化金丝雀发布、自动化蓝绿发布、还可以通过argo命令或者dashboard查看发布的过程 二、使用 需要先部署argo rollout服务 参考:https://github.com/argoproj/argo-rollouts/tree/master/m…

关于web_server项目的学习记录(自用)

主要参考资料: 我在地铁吃闸机 基础处理框架:Multi-reactor muduo库有三个核心组件实现持续监听reactor的fd:channel;epoll/poller/eventloop类 channel 事件监听器epoll_ctl监听到了fd发生了什么事件,channel类会封装每个fd和fd感兴趣的事…

036—pandas 按行将列名根据值由大到小排序

前言 数据处理中,按行排列的列名可以提供更直观的数据探索和分析方式。 你可以逐行查看列名,了解每列的含义和特征,有助于更好地理解数据集的结构和内容。 需求: 需要增加一列「分布方式」,每行的值是本行基金名称对…

C++多线程:thread构造源码剖析与detach大坑(三)

1、thread源码浅剖析 基于Ubuntu18.04版本64位操作系统下进行分析thread源码分析,与Window或者其他版本可能有出入。 1.1、thread线程id的源头 typedef pthread_t __gthread_t; typedef __gthread_t native_handle_type;/// thread::id class id {native_handl…