JAVA单列集合

c4ade6464411419aa84bae42fdb3613c.jpg

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

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

Collection

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

public boolean add(E e)        把给定的对象添加到当前集合中
public void clear()        清空集合中所有的元素
public boolean remove(E e)        把给定的对象在当前集合中删除
public boolean contains(bject obj)        判断当前集合中是否包含给定的对象
public boolean isEmpty()        判断当前集合是否为空
public int size()        返回集合中元素的个数/集合的长度

Collection是一个接口,我们不能直接创建他的对象。所以,现在我们学习他的方法时,只能创建他实现类的对象。
下面用多态的方式创建对象,这是为了学习Collection接口里的方法

add:把给定的对象添加到当前集合中

5c81e3d7db6949d29a7fb4865a97d6db.png

94206abab92b4a6cbeece5c82c653800.png

如果我们要往List系列集合中添加数据,那么方法永远返回true,因为List系列的是允许元素重复的。
如果我们要往Set系列集合中添加数据,如果当前要添加元素不存在,方法返回true,表示添加成功。如果当前要添加的元素已经存在,方法返回false,表示添加失败。因为Set系列的集合不允许重复。

clear:清空集合中所有的元素

67a6ef3968204a5e9747ec9ad6fa5a5f.png0966331c088f4944aff34b3e5e8d7275.png

remove(E e)        把给定的对象在当前集合中删除

95e60024955a48b9bd39fc5ed773ba66.png32ec8e1eed1c4f44af266e4204563cdb.png

因为Collection里面定义的是共性的方法,所以此时不能通过索引进行删除。只能通过元素的对象进行删除。方法会有一个布尔类型的返回值,删除成功返回true,删除失败返回false。如果要删除的元素不存在,就会删除失败。

contains(bject obj)        判断当前集合中是否包含给定的对象

2f6fbfc6981145c689ca666e61e34b8c.pngd6621a79c8c1461db3f3531f3038041d.png

e0a31b90414c40308df8cc0810440788.png

272aa4b46f98434e83c9cf2ee6560d62.png

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

b3d306087a5c4e7b8b0859183489bdb3.png所以,如果集合中存储的是自定义对象(例如自己定义的Student类,teacher类),也想通过contains方法来判断是否包含,那么在javabean类中,一定要重写equals方法。 

isEmpty()        判断当前集合是否为空

2e9ea2604f21431aa8d8728bbf946394.png

c623d22fafa4401d8a09fda9e62d60d7.png

size()        返回集合中元素的个数/集合的长度

a9dadfb28ccb4115b771f3eeb82023bf.png977bba15ebb04447bce8e99774b75e48.png

Collection遍历方式

迭代器遍历

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

Collection集合获取迭代器

Iterator<E> iterator()     返回迭代器对象,默认指向当前集合的0索引

lterator中的常用方法 

boolean hasNext()        判断当前位置是否有元素,有元素返回true,没有元素返回false
E next()        获取当前位置的元素,并将迭代器对象移向下一个位置。

0bed0597b8d14d93be5b4ad7f350e9f0.png9f07181b4efb4b4dbde38c9f5526b1fe.png

迭代器遍历完毕,指针不会复位

34eed5aeca684dc4841723902040cf72.pngb63632407a874a238161a76792b0cb81.png如果我们要继续第二次遍历集合,只能再次获取一个新的迭代器对象

增强for遍历

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

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

 

}

44eb98b0845640dea9abca9eff8b84cd.png c368c8a9817a4f4aa4b21c4e86fa2497.png

修改增强for中的变量,不会改变集合中原本的数据。

1b0f4a9cb7484690b09d502cad9ef77d.png

80e407d460ff420dbff9c39ab578ca29.png

Lambda表达式遍历

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

5ac1ea5a99144542a3a4333bf64543da.png

26c2041d92494752985eb7db8bf862aa.png

 

 

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

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

相关文章

Spring MVC(下)

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 JavaEE专栏:JavaEE 关注博主带你了解更多JavaEE知识 目录 1.响应 1.1 返回静态页面 1.2 返回数据ResponseBody 1.3 返回HTML代码⽚段 1.4 返回JSON 1.5 设置状态码 1.6 设置Header 2 . …

【文献及模型、制图分享】基于国际湿地城市视角的常德市湿地保护修复成效与归因分析及其政策启示

文献介绍 《湿地公约》提出的“国际湿地城市”认证是促进湿地保护修复的新举措。以国际湿地城市常德市为例&#xff0c;基于2000—2022年15 m空间分辨率湿地分类数据&#xff0c;监测常德市湿地保护修复逐年动态变化&#xff0c;定量分析湿地保护修复驱动因素的重要性和贡献率…

K8s中TSL证书如何续期

TSL是什么 K8s中的作用是什么&#xff1f; 在 Kubernetes&#xff08;K8s&#xff09;中&#xff0c;TSL 指的是 Transport Layer Security&#xff0c;也就是传输层安全协议。它是用来保护在网络上传输的数据的安全性和隐私性。 TSL 在 Kubernetes 中的作用包括&#xff1a;…

第1讲(ASP.NET Core 6 Web Api 开发入门):第一个Web Api项目

一、运行模板项目 二、验证模板项目的api 法1&#xff1a;直接在网页上进行验证api 法2&#xff1a;通过命令行验证api 复制下图的Curl语句&#xff0c;打开命令行进行粘贴。&#xff08;对于windows系统&#xff0c;需要把换成"&#xff0c;再去掉所有的/&#xff0c;最…

一文了解AOSP是什么?

一文了解AOSP是什么&#xff1f; AOSP基本信息 基本定义 AOSP是Android Open Source Project的缩写&#xff0c;这是一个由Google维护的完全免费和开放的操作系统开发项目。它是Android系统的核心基础&#xff0c;提供了构建移动操作系统所需的基本组件。 主要特点 完全开源…

【景观生态学实验】实验一 ArcGIS地理数据处理及制图基础

实验目的 1.掌握ArcGIS软件基本操作&#xff1a;通过实验操作与学习&#xff0c;熟练掌握ArcGIS软件相关的基本操作&#xff0c;包括界面熟悉、工具栏使用、数据的加载和保存、基本数据处理操作等; 2.掌握如何使用ArcGIS进行影像拼接及裁剪&#xff1a;通过实验操作与学习&am…

传知代码-ChatGPT多模态命名实体识别

代码以及视频讲解 本文所涉及所有资源均在传知代码平台可获取 ChatGPT辅助细化知识增强&#xff01; 多模态命名实体识别&#xff08;MNER&#xff09;最近引起了广泛关注。 用户在社交媒体上生成大量非结构化内容&#xff0c;主要由图像和文本组成。这些帖子具有与社交媒体相…

GISBox vs CesiumLab:哪款GIS工具更适合你的项目?

在地理信息系统&#xff08;GIS&#xff09;领域&#xff0c;越来越多的用户开始关注GIS工具箱的选择&#xff0c;其中GISBox和CesiumLab是两款备受推崇的产品。那么&#xff0c;哪一款更适合你的需求呢&#xff1f;本文将从功能、使用体验和应用场景等方面&#xff0c;对GISBo…

产品如何实现3D展示?具体步骤如下

产品实现3D展示主要依赖于先进的3D建模与展示技术。以下是产品实现3D展示的具体步骤和方法&#xff1a; 一、3D建模 使用专业的3D建模软件&#xff0c;如Blender、Maya、3ds Max等&#xff0c;这些软件提供了丰富的建模工具和材质编辑器&#xff0c;能够创建出高精度的3D模型…

Python基于amazon/chronos-t5-base的预训练模型离线对时间系列数据的未来进行预测

Python基于预训练模型对时间系列数据的未来进行预测 导入库 %matplotlib inline import matplotlib.pyplot as plt import numpy as np import pandas as pd import torch from chronos import ChronosPipeline from tqdm.auto import tqdm from autogluon.timeseries import…

电脑定期运行某个程序

1、右键计算机-管理&#xff0c;点击任务计划程序&#xff0c;再点击创建基本任务&#xff1b; 2、写名称&#xff0c;下一步 3、选择任务开始计划&#xff0c;下一步 4、选择触发时间&#xff0c;下一步 5、选择启动程序&#xff0c;下一步 6、选择运行的程序&#xff0c;下一…

模型拆解(一):DBINet、GCPANet、CPD、ACCoNet、FPS-U2Net

文章目录 一、DBINet1.1编码器模块&#xff1a;ResNet50PVT双分支结构1.2解码器模块&#xff1a;自细化模块SR的应用1.3DFM&#xff1a;双分支融合模块1.4转换器模块&#xff1a;调整编码器输出至解码器中1.5深度监督损失函数 二、GCPANet2.1编码器模块&#xff1a;ResNet50主干…

uniapp移动端优惠券! 附源码!!!!

本文为常见的移动端uniapp优惠券&#xff0c;共有6种优惠券样式&#xff08;参考了常见的优惠券&#xff09;&#xff0c;文本内容仅为示例&#xff0c;您可在此基础上调整为你想要的文本 预览效果 通过模拟数据&#xff0c;实现点击使用优惠券让其变为灰色的效果&#xff08;模…

来自骨关节炎计划的膝关节MR图像的自动异常感知3D骨骼和软骨分割|文献速递-基于生成模型的数据增强与疾病监测应用

Title 题目 Automated anomaly-aware 3D segmentation of bones and cartilages in kneeMR images from the Osteoarthritis Initiative 来自骨关节炎计划的膝关节MR图像的自动异常感知3D骨骼和软骨分割 Background 背景 近年来&#xff0c;多个机器学习算法被提出用于图像…

windows|常见的文件伪装方法

几种常见的文件伪装方法&#xff1a; 扩展名伪装unicode字符伪装压缩包伪装隐写术 方法仅限于学习目的&#xff0c;不用于任何恶意或非法用途。 ———— 一、扩展名伪装&#xff1a;假装是另一种类型的文件 修改文件的扩展名&#xff0c;使得文件看起来像其他类型的文件&a…

python常用设计模式,单例模式和工厂设计模式

python常用设计模式&#xff0c;单例和工厂设计模式Demo 单例模式 单例设计模式是一种创建型设计模式&#xff0c;它确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取该实例。 应用场景&#xff1a;日志记录、线程池、缓存等 优点&#xff1a; 全局访问&…

洛谷题解 - P1162 填涂颜色

目录 填涂颜色题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题解思路代码 填涂颜色 题目描述 由数字 0 0 0 组成的方阵中&#xff0c;有一任意形状的由数字 1 1 1 构成的闭合圈。现要求把闭合圈内的所有空间都填写成 2 2 2。例如&#xff1a; 6 6 6\times…

python的散列类型与字符编码

文章目录 一、 初识散列类型(无序序列)二、认识集合集合的方法增删 二、认识字典字典方法增删改查 声明空变量 三、字符编码元组名() #声明一个空元组 一、 初识散列类型(无序序列) 数据类型分为3种: python的序列类型有好几种&#xff0c;之前的博文讲到了两种类型 1.数值类型…

Appium中的api(一)

目录 1.基础python代码准备 1--参数的一些说明 2--python内所要编写的代码 解释 2.如何获取包名和界面名 1-api 2-完整代码 代码解释 3.如何关闭驱动连接 4.安装卸载app 1--卸载 2--安装 5.判断app是否安装 6.将应用放到后台在切换为前台的时间 7.UIAutomatorViewer的使用 1--找…

Oracle CONNECT BY、PRIOR和START WITH关键字详解

Oracle CONNECT BY、PRIOR和START WITH关键字详解 1. 基本概念2. 数据示例3. SQL示例3.1. 查询所有员工及其上级3.2. 显示层次结构3.3. 查询特定员工的子级 4. 结论 在Oracle数据库中&#xff0c;CONNECT BY、PRIOR和START WITH关键字主要用于处理层次结构数据&#xff0c;例如…