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

 

 

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

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

相关文章

【大数据学习 | Zookeeper】Zookeeper的选举机制

zookeeper的选举机制分为第一次启动和非第一次启动两种情况。 1. 选举机制 - > 第一次启动 (1)服务器1启动&#xff0c;发起一次选举。服务器1投自己一票。此时服务器1票数一票&#xff0c;不够半数以上(3票)&#xff0c;选举无法完成&#xff0c;服务器1状态保持为 LOOKIN…

docker run 命令解析

docker run 命令解析 docker run 命令用于从给定的镜像启动一个新的容器。这个命令可以包含许多选项&#xff0c;下面是一些常用的选项&#xff1a; -d&#xff1a;后台运行容器&#xff0c;并返回容器ID&#xff1b;-i&#xff1a;以交互模式运行容器&#xff0c;通常与 -t …

中国信通院联合中国电促会开展电力行业企业开源典型实践案例征集

自2021年被首次写入国家“十四五”规划以来&#xff0c;开源技术发展凭借其平等、开放、协作、共享的优秀创作模式&#xff0c;正持续成为推动数字技术创新、优化软件生产模式、赋能传统行业转型升级、助力企业降本增效的重要引擎。电力是国民经济的重要基础性产业&#xff0c;…

Atlassian Team ‘24 Europe:推出Rovo、开发人员AI助手、新版Jira等多款AI创新,重塑团队协作

过去一周&#xff0c;Atlassian Team 24 Europe在巴塞罗那盛大举行&#xff01;展示了Atlassian在推动团队协作和业务发展方面的最新成果与前沿见解。 本文&#xff0c;Atlassian联合创始人兼首席执行官Mike Cannon-Brookes为我们分享了Atlassian在AI创新和系统化工作两项关键任…

2019年计算机网络408真题解析

第一题&#xff1a; 解析&#xff1a;OSI参考模型第5层完成的功能 首先&#xff0c;我们需要对OSI参考模型很熟悉&#xff1a;从下到上依次是&#xff1a;物理层-数据链路层-网络层- 运输层-会话层-表示层-应用层&#xff0c;由此可知&#xff0c;题目要问的是会话层的主要功能…

python 爬虫 入门 二、数据解析(正则、bs4、xpath)

目录 一、待匹配数据获取 二、正则 三、bs4 &#xff08;一&#xff09;、访问属性 &#xff08;二&#xff09;、获取标签的值 &#xff08;三&#xff09;、查询方法 四、xpath 后续&#xff1a;登录和代理 上一节我们已经知道了如何向服务器发送请求以获得数据&#x…

三周精通FastAPI:10 Cookie 参数 和Cookie 参数模型

官方文档&#xff1a;Cookie 参数 - FastAPI Cookie 参数 定义 Cookie 参数与定义 Query 和 Path 参数一样。 源码&#xff1a; from typing import Annotatedfrom fastapi import Cookie, FastAPIapp FastAPI()app.get("/items/") async def read_items(ads_id…

PHP泵的比例流量控制阀放大器

01 PHP 05 PCS005、01 PHP 1 PCS005、01 PHP 2 PCS005、01 PHP 3 PCS005&#xff0c;01 FCV 2 M、01 FCV 3 M、01 PHP 05 PCLS005、01 PHP 1 PCLS005、01 PHP 2 PCLS005、01 PHP 3 PCLS005&#xff0c;FCV比例流量控制阀旨在与Berarma的PHP2和PHP3泵最佳集成&#xff0c;但由于…

戴尔电脑win11找不到D盘的解决办法

新公司给配的戴尔电脑&#xff0c;系统是win11&#xff0c;第一天用的好好地&#xff0c;第二天不知道什么原因&#xff0c;D盘找不到了&#xff0c;在网上搜了好多教程也没用&#xff0c;最后咨询客服&#xff0c;找到了解决办法 若【磁盘管理】界面看不到硬盘分区或无法进入…

比亚迪车机安装第三方应用教程

比亚迪车机安装第三方应用教程 比亚迪车机U盘安装APP&#xff0c; 无论是dlink3.0还是4.0都是安卓系统&#xff0c;因此理论上安卓应用是都可以安装的&#xff0c;主要就是横屏和竖屏的区别。在比亚迪上安装软件我主要推荐两种方法。 第一种&#xff0c;直接从电脑端下载安装布…

《计算机视觉》—— 基于dlib库的人检检测

文章目录 一、dlib库的安装1. 通过PyCharm的Settings安装2. 通过Anaconda安装&#xff08;适用于Windows等操作系统&#xff09;3. 通过命令行安装4.懒人安装 二、基于dlib库的人检测1.对图像进行人脸检测2.打开电脑摄像头&#xff0c;检测人脸 一、dlib库的安装 在PyCharm中&…

域渗透AD渗透攻击利用 MS14-068漏洞利用过程 以及域渗透中票据是什么 如何利用

目录 wmi协议远程执行 ptt票据传递使用 命令传递方式 明文口令传递 hash口令传递 票据分类 kerberos认证的简述流程 PTT攻击的过程 MS14-068 漏洞 执行过程 wmi协议远程执行 wmi服务是比smb服务高级一些的&#xff0c;在日志中是找不到痕迹的&#xff0c;但是这个主…

mongodb在linux下的部署

目录 版本部署上传到服务器中创建目录&#xff0c;解压创建mongodb.conf添加环境变量添加到系统服务中centos6 中添加到服务中 重新加载服务并启动卸载&#xff0c;mongodb.conf配置项等 创建用户&#xff0c;设置用户名密码角色启动验证验证 常见知识mongodb角色mongodb.conf配…

如何禁止上班期间浏览无关网站?

禁止员工在上班期间浏览无关网页主要是为了提升工作效率和生产力&#xff0c;确保员工能够专注于工作任务。同时&#xff0c;这种做法有助于降低网络安全风险&#xff0c;防止恶意软件和钓鱼攻击&#xff0c;减少数据泄露和法律风险&#xff0c;维护公司的专业形象&#xff0c;…

数据结构深度优先搜索遍历连通图+非连通图(C语言代码+遍历+终端输入内容)

首先数据结构(C语言版第二版)的关于深度优先搜索遍历连通图的图G4如下: 使用邻接表去创建上面这个无向图&#xff0c;然后再使用书本DFS函数以及DFSTraverse函数实现深度优先搜索遍历 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #…

微调大模型-2-Qwen基座模型使用

下载Qwen源码 Qwen作为中文支持非常nice的模型&#xff0c;很适合用于LLM学习。在云服务器里clone Qwen工程。 git clone https://github.com/QwenLM/Qwen2.5.git原始模型使用主要基于cli_demo.py-命令行调用&#xff0c;web_demo.py-网页调用。 预览这两个文件时&#xff0c…

Python | Leetcode Python题解之第497题非重叠矩形中的随机点

题目&#xff1a; 题解&#xff1a; class Solution:def __init__(self, rects: List[List[int]]):self.rects rectsself.sum [0]for a, b, x, y in rects:self.sum.append(self.sum[-1] (x - a 1) * (y - b 1))def pick(self) -> List[int]:k randrange(self.sum[-1…

vue3移动端可同时上传照片和视频的组件

uni-app中的uni-file-picker可单独上传照片或视频&#xff0c;但不支持同时上传照片和视频。本篇博客使用image标签和video标签实现移动端&#xff08;H5app小程序&#xff09;中照片和视频的同时上传。 本篇博客采用的是照片和视频的单独上传&#xff0c;但可同时展示&#xf…

Qt(简介)

1. Qt简介 Qt是一个基于C的图形用户界面&#xff08;GUI&#xff09;框架&#xff0c;可以开发可视化人机交互程序&#xff0c;但是这并不是Qt的全部。Qt除了可以绘制漂亮的界面外&#xff0c;还包含很多其他的功能&#xff1a;多线程、数据库、图像处理、音视频处理、网络通信…

后台管理员登录实现--系统篇

我的小系统后台原来就有一个上传图片的功能还夹带个删除图片的功能&#xff0c;还嵌到了一个菜单里面。之前效果如下 那么现在为了加大安全力度&#xff0c;想增加一个登录页面。通过登录再到这个页面。看着貌似很简单&#xff0c;但是听我细细说来&#xff0c;要新增些什么东西…