容器中的单例集合(一)——Collection接口和List接口

        在java中,容器可以简单的分为单例集合和双例集合。单例集合的使用由接口Collection定义。在Collection接口之下,根据容器的中储存元素的特性不同,Collection接口之下又定义了两个子接口——List接口和Set接口。List接口定义的容器中储存的元素是有序,可重复的,而Set接口定义的容器储存的元素是无序、不可重复的元素。

Collection接口

        Collection接口是单例集合的根接口,它的下面有List和Set两个子接口。在Collection接口中定义了对单例集合进行操作的多个抽象方法,分别有add、remove、contains、size、isEmpty、clear、iterator、containsAll、addAll、removeAll、retainAll、toArray。通过实现这些方法能够对创建的容器以及容器中的元素进行操作。

        boolean add(Object element) :将元素添加到容器中,并返回一个boolean类型的值,添加成功返回true,否则返回false;

        boolean remove(Object element) :移除容器中指定的元素,并返回一个boolean类型的值,移除成功返回true。否则返回false;

        boolean contains(Object element) :判断容器中是否含有某个元素,并返回一个boolean类型的值,若含有则返回true,否则返回false;

        int size() :判断容器中元素的数量

        boolean isEmpty() :判断容器是否为空,并返回一个boolean类型的值,如果容器为空则返回true,否则返回false;

        void clear() :清空容器中所有元素;

        Iterator iterator() :获取一个迭代器,用于遍历容器中的元素;

        boolean containsAll(Collection c) :判断本容器中是否包含容器c中的所有元素,若包含返回boolean值true,否则返回false;

        boolean addAll(Collection c) :将容器c中的所有元素添加到本容器中,如果添加成功返回true,否则返回false;

        boolean removeAll(Collection c) :移除本容器和容器c中都拥有的元素,移除成功返回boolean类型的值true,否则返回值false;

        boolean retainAll(Collection c) :获取本容器和容器c中同时拥有的元素,

        Object[] toArray() :将本容器转化为Object数组。

List接口

        List接口是Cllection接口的子接口,进一步定义了容器中单例集合的特征。List接口定义的容器中的元素是有序可重复的。有序指的是List定义的容器中的元素在存储时都有一个属于自己的索引,通过这个索引可以对容器中的元素进行精确的操作。可重复指的是List定义的容器中的元素可以储存多个相同的元素,这里说的相同指的是在调用方法e1.equals(e2)返回值为true的两个元素,并不仅仅局限于两个地址相同的元素。

        List接口作为Collection接口的子接口,继承了Collection接口中的所有的抽象方法,同时,由于List接口定义的容器涉及到了元素的索引,所以在List接口中又额外定义几个抽象方法,用于实现对元素的精准控制。这几个方法分别是add、set、get、remove、indexOf、lastIndexOf。其中add方发和remove方法可以看作是对Collection接口中add方法和remove方法的重载。

       void add(int index,Object element):在指定的索引位置插入指定的元素,如果插入位置以及插入位置之后存在元素,那么从那个位置开始,往后的所有元素的索引向后移动一位(包括该位置的原元素);

        Object set(int index,Object element):修改指定索引位置的元素;

        Object get(int index):获取指定位置的元素;

        Object remove(int index):删除指定位置的元素,如果该指定位置的后面存在元素,则后面的所有元素的索引向前移动一位;

        int indexOf(Object o):从前往后查找容器中是否存在元素o,并返回第一个与之匹配的元素的索引,如果容器中不存在元素o,则返回值-1;

        int lastIndexOf(Object o):从后往前查找容器中是否存在元素o,并返回第一个与之匹配的元素索引,如果容器中不存在元素o,则返回值-1。

        从以上介绍的List接口中的抽象方法不难看出,这些在Collection接口的基础上增添的方法中都涉及到了元素索引,因此也能判断,List接口定义的容器最大的特点就是元素的有序性和元素的可重复性,这两个特征是理解List接口定义的容器的关键。

        

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

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

相关文章

内网安全-隧道技术SSHDNSICMPSMB上线通讯LinuxMac 简单总结

第126天:内网安全-隧道技术&SSH&DNS&ICMP&SMB&上线通讯Linux&Mac_内网安全-隧道技术_ssh_dns_icmp_smb_上线通讯linux_mac-CSDN博客 内网渗透—隧道技术_隧道技术csdn-CSDN博客 #SMB 隧道&通讯&上线 判断:445 通讯 上…

Azure Windows2012升级2016

Azure Windows2012升级2016 在自己电脑配置Azure PowerShell前置条件PowerShell 登录到 Azure Azure 中运行 Windows Server 的 VM 的就地升级前置条件,生成一块OS磁盘将生成的OS磁盘附件到需升级的服务器执行就地升级到 Windows Server 2016 升级后配置故障恢复 在…

一觉醒来 AI科技圈发生的大小事儿 05月09日

📳AlphaFold 3 重磅问世,全面预测蛋白质与所有生命分子相互作用及结构,准确性远超以往水平 Google DeepMind发布了AlphaFold3模型,能够联合预测蛋白质、核酸、小分子等复合物结构,准确性显著提高,对跨生物…

代码随想录算法训练营第36期DAY22

DAY22 654最大二叉树 自己做的时候忽略了:nums.length>1的题给条件。所以每次递归都要判断是否size()>1,不要空的。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig…

让数据更「高效」一点!IvorySQL在Neon平台上的迅速部署和灵活应用

IvorySQL本身就是一个100%兼容PostgreSQL最新内核的开源数据库系统,而Neon Autoscaling Platform通常支持多种数据库和应用程序。将IvorySQL集成到该平台后,可以进一步增强与其他系统和应用程序的兼容性,同时更全面的体验IvorySQL的Oracle兼容…

深入探究 Spring Boot Starter:从概念到实践

序言 Spring Boot Starter 是 Spring Boot 生态系统中的一个核心概念,它为开发者提供了一种便捷的方式来捆绑和配置应用程序所需的依赖项。本文将深入探讨 Spring Boot Starter 的概念、原理以及如何创建自定义的 Starter。 一、什么是 Spring Boot Starter Spri…

docker 安装elasticsearch8.X

docker 安装elasticsearch8.X 安装elasticsearch8.X前言安装elasticsearch安装elasticsearch-analysis-ik安装kibana 安装elasticsearch8.X 前言 由于需要安装elasticsearch、IK分词插件、kibana。所以需要保持这三者的版本一致性。 elasticsearch 8.12.2 kibana 8.12.2 ela…

科沃斯梦碎“扫地茅”,钱东奇跌落“风口”

昔日“扫地茅“不香了,科沃斯跌落神坛。 4月27日,科沃斯发布2023年报显示:2023年,科沃斯的营收为155.02亿元,同比增加1.16%;同期,净利为6.10亿元,同比减少63.96%。科沃斯的经营业绩…

Mysql数据在磁盘上的存储结构

一. 前言 一行数据的存储格式大致如下所示: 变长字段的长度列表,null值列表,数据头,column01的值,column02的值,column0n的值… 二. 变长字段 在MySQL里有一些字段的长度是变长的,是不固定的,…

可视化-实验五-Pyecharts工具包的使用及文本数据可视化

1.2.1 pyecharts的数据类型以及新的数据导入逻辑 由于pyecharts背后封装的js库,会涉及到数据类型转化。它暂时要求输入数据必须是python的基础数据类型,比如字符串,列表,字典,而不能是序列这样的数据类型。因此序列输入…

RockChip Android13 添加/删除ListPreference方法

概述: 本章将讲述在Android添加或删除ListPreference的几种方法,并以EthernetSettingsActivity为例,添加/删除一项ListPreference: 默认效果图: 添加后效果图: 方法一: 1、全部添加xml 在Activity类中使用addPreferencesFromResource()方法解析XML文件并添加Prefere…

Node.js安装与配置环境 v20.13.1(LTS)

1 下载 Node.js — Run JavaScript Everywhere LTS -- long-term support,长期维护版本 如果要下载其他版本在download里选择下载 2 安装 一路点击next,默认安装路径C:\Program Files\nodejs 3 环境变量配置 1)Path环境变量增加nodejs安装…

艾体宝方案 | 加密USB金融解决方案

在现代金融行业中,保护敏感数据和合规性已成为至关重要的任务。为了帮助金融公司应对移动性风险和合规挑战,我们提供了一种高效的加密USB解决方案。 一、为什么金融公司需要加密USB解决方案 1、降低移动性风险 金融服务公司正在迅速过渡到一种模式&a…

将本地托管模型与 Elastic AI Assistant 结合使用的好处

作者:来自 Elastic James Spiteri, Dhrumil Patel 当今公共部门组织利用生成式人工智能解决安全挑战的一种方式。 凭借其筛选大量数据以发现异常模式的能力,生成式人工智能现在在帮助团队保护其组织免受网络威胁方面发挥着关键作用。 它还可以帮助安全专…

短信平台群发服务有什么优点

短信平台群发服务有什么优点 提高营销效率 短信平台群发服务利用自动化技术,可以帮助企业迅速向大量潜在客户营销信息。相比传统的逐一方式,群发服务可以同时大批目标客户,大大提高了营销效率。企业可以轻松地在短时间内覆盖更多的潜在客户&…

JavaSE——异常(2/2)-异常的处理(记录异常并提示 、尝试重新修复)

目录 记录异常并提示 案例演示 流程解析 写法优化 尝试重新修复 开发中对于异常的常见处理方式 一层一层往上抛出异常,并且在最上层捕获异常,分为两种不同的处理方式。 例如,B站网页报错就是采取的第一种方式: 记录异常并…

linux 性能监控命令之dstat

1. dstat 系统默认为安装,直接安装阿里源后,yum install -y dstat安装即可,该命令整合了 vmstat , iostat 和 ifstat,我们先看下效果: 我们先看看具体参数: [rootk8s-master ~]# dstat --help …

C++STL初阶(1):string的使用及初阶原理

此文作为学习stl的笔记,许多普及、概念性的知识点将不再罗列(如stl的发展、背景等) 便于读者作为复习等方法了解。 0.STL简介(笔记向) STL不是祖师爷本贾尼实现的,是在惠普实验室中实现的。其作为一个数据结…

加密“发射台”:未来通信的新模式

随着区块链技术的飞速发展,加密“发射台”作为一种新兴的安全通信工具,正逐渐受到关注。本文将从专业角度深入探讨加密“发射台”的概念、原理、应用场景及其未来发展趋势,以期为读者提供有深度和逻辑性的思考。 一、加密“发射台”的概念与…

开源项目介绍-02 Aubio【1】环境配置和使用 @ Ubuntu + Pycharm + Python

前言: aubio 是一组算法和工具,用于标记和变换音乐和声音。它扫描或监听音频信号,并尝试识别音乐事件。例如,当鼓被击打时,它能检测到音符的频率,或者一个有节奏的旋律的节拍是多少。 aubio 的功能包括&a…
最新文章