集合、Collection接口特点和常用方法

news2024/11/18 3:26:27

1、集合介绍

对于保存多个数据使用的是数组,那么数组有不足的地方。比如,

  • 长度开始时必须指定,而且一旦制定,不能更改。

  • 保存的必须为同一类型的元素。

  • 使用数组进行增加/删除元素的示意代码,也就是比较麻烦。

为了解决数组这些不足之处,那么就可以引出集合来处理。下面先说一下集合的好处。

  • 可以动态保存任意多个对象,使用比较方便。

  • 提供了一系列方便的操作对象:add、remove、set、get等。

  • 使用集合添加或删除新元素,代码简洁。

集合体系图如下,Collection是单列接口,Map是双列接口。虚线可以看成实现关系,实线可以看成继承关系。

2、Collection接口实现类的特点

public interface Collection<E>extends Iterable<E>

  • Collection实现子类,可以存放多个元素,每个元素可以是Object。

  • Collection的实现类,有些是有序地(List),有些不是有序(Set)。

  • 有些Collection的实现类,可以存放重复的元素,有些不可以。

  • Collection接口没有直接的实现子类,是通过它的子接口Set和List来实现的。

3、Collection接口常用方法。

以实现子类ArraysList来演示。

方法总结:

add()  // 添加单个元素

remove() //删除指定元素

contains() //查找元素是否存在

size() //获取元素个数

isEmpty() //判断是否为空

clear() //清空

addAll() //添加多个元素

contains All() //查找多个元素是否都存在

removeAll() //删除多个元素

//由于接口不能直接被实例化,只有实现了接口的类才能被实例化,所以这里我们使用ArrayList
        //使用List接口接收
        List list = new ArrayList();
        //add() 添加单个元素
        list.add("jack");
        list.add("marry");
        list.add("smith");
        System.out.println(list);//[jack, marry, smith]
        //remove() 删除指定元素
        list.remove("jack");
        System.out.println(list);//[marry, smith]
        //contains() 查找元素是否存在
        System.out.println(list.contains("jack"));//false
        //size() 获取元素个数
        System.out.println(list.size());//2
        //isEmpty() 判断是否为空
        System.out.println(list.isEmpty());//false
        //clear() 清空
        list.clear();
        System.out.println(list.isEmpty());//true
        //addAll() 添加多个元素
        List list1 = new ArrayList();
        list1.add(1);
        list1.add("终极笔记");
        list1.add("老九门");
        list.addAll(list1);
        System.out.println(list1);//[1, 终极笔记, 老九门]
        // containsAll() 查找多个元素是否都存在
        System.out.println(list1.containsAll(list1));//true
        //removeAll() 删除多个元素
        list1.removeAll(list1);//true
        System.out.println(list1.size());//0

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

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

相关文章

必应bing国内广告开户首充和开户费是多少?

微软必应Bing作为国内领先的搜索引擎之一&#xff0c;其广告平台凭借其精准的投放、高效的数据分析和广泛的用户覆盖&#xff0c;已成为众多企业的首选。 根据最新政策&#xff0c;2024年必应Bing国内广告开户预充值金额设定为1万元人民币起。这一调整旨在确保广告主在账户初始…

奥德彪的幸福VS码农的幸福

奥德彪的幸福 非洲国家布隆迪是一个全球最不发达国家之一&#xff0c;大部分居民以农业为生&#xff0c;其中包括香蕉&#xff0c;人们拿香蕉用来做饭也用来酿酒。 香蕉产地距离布隆迪首都布琼布拉很远&#xff0c;而这个国家又缺乏规模化的物流企业&#xff0c;于是就诞生了…

如何用java做一个模拟登录画面

要求&#xff1a; 实现registerAction方法中的注册逻辑。实现login方法中的登录逻辑&#xff0c;确保只有当用户名和密码都正确时才返回true。实现好友管理功能&#xff0c;包括添加好友、删除好友、查看好友列表。确保所有的文件操作&#xff08;如读取和写入credentials.txt…

Java类

一.什么是类&#xff1f; 在src文件夹下面用一个Text类&#xff0c;这个Text就是这一个类的类名&#xff0c;所以说&#xff0c;一个Java文件里面就存在一个类&#xff0c;&#xff08;在Java中有一个习惯&#xff0c;一个Java文件里面&#xff0c;只写一个类&#xff09;。 &…

SSMP整合案例第三步 业务层service开发及基于Mybatis的接口功能拓展

业务层开发 对于业务层的制作有个误区 Service层接口定义与数据层接口定义具有较大差别 不要混用 业务层接口关注的是业务名称 数据层接口关注的是数据层名称 操作是不难 但是有些东西还是要掌握的 业务层接口如果是业务方法 就按照业务名称来代替 如果是数据操作 直接用…

pytorch文本分类(四)模型框架(模型训练与验证)

关卡四 模型训练与验证 本文是在原本闯关训练的基础上总结得来&#xff0c;加入了自己的理解以及疑问解答&#xff08;by GPT4&#xff09; 原任务链接 目录 关卡四 模型训练与验证1. 训练1.1 构建模型结构1.2 模型编译1.3 模型训练1.4模型超参数调试 2. 推理2.1 模型准确性…

UDP协议与TCP协议1.2

UDP UDP数据报UDP报头UDP载荷 UDP的报文格式&#xff1a; 这里的UDP长度&#xff0c;描述了整个UDP数据报&#xff0c;占多少个字节&#xff0c;这里整个UDP长度最多是64kb 在UDP中校验和就是使用CRC的方式来完成的 数据在网络传输中是可能会出现错误的&#xff0c;例如比特翻…

四信云-设备维保管理系统上线,实现设备全生命周期管理

在当今的制造业中&#xff0c;设备是企业生产的核心要素&#xff0c;是企业竞争力的基石。 随着企业发展规模不断扩大&#xff0c;设备数量急速增长&#xff0c;传统的手工管理方式已经无法满足企业需求&#xff0c;设备管理系统的出现则填补了市场需求空白&#xff0c;其目标…

翻译《The Old New Thing》- How do I mark a shortcut file as requiring elevation?

How do I mark a shortcut file as requiring elevation? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071219-00/?p24103 Raymond Chen 2007年12月19日 如何将快捷方式标记为需要提升权限 简要 文章介绍了如何通过设置SLDF_RUNAS_US…

echarts-坐标轴2

刻度的间隔 类目轴的间隔 interval xAxis: {type: "category",name: "x轴",axisLine: {},axisLabel: {show: true,color: "yellow",backgroundColor: "blue",interval: 5,},data: [11, 22, 322, 422, 522, 622, 722, 822, 229, 1220,…

k8s集群安装后CoreDNS 启动报错plugin/forward: no nameservers found

安装k8s过程中遇到的问题&#xff1a; 基本信息 系统版本&#xff1a;ubuntu 22.04 故障现象&#xff1a; coredns 报错&#xff1a;plugin/forward: no nameservers found 故障排查&#xff1a; #检查coredns的配置&#xff0c;发现有一条转发到/etc/resolv.conf的配置…

哪些类型的产品适合用3D形式展示?

随着3D技术的蓬勃发展&#xff0c;众多品牌和企业纷纷投身3D数字化浪潮&#xff0c;将产品打造成逼真的3D模型进行展示&#xff0c;消费者可以更加直观地了解产品的特点和优势&#xff0c;从而做出更明智的购买决策。 哪些产品适合3D交互展示&#xff1f; 产品3D交互展示具有直…

云计算事件响应优秀实践

云计算如今已经成为一种主流技术&#xff0c;随着云安全的日益普及&#xff0c;他们正在与德迅云团队合作&#xff0c;致力于开始保护其云计算系统。 云计算如今已经成为一种主流技术&#xff0c;几乎所有组织都在公有云中运行一些资源——无论是网站、游戏、app、小程序。德迅…

钡铼BL205分布式IO在精密机械加工自动化中的精准控制OPC UA

随着工业自动化技术的不断发展&#xff0c;精密机械加工领域对于高效、精准的控制需求日益增加。在这一背景下&#xff0c;钡铼BL205分布式IO的出现为精密机械加工自动化注入了新的活力和可能性。本文将探讨钡铼BL205分布式IO在精密机械加工自动化中的应用&#xff0c;尤其是其…

LeetCode算法题:42. 接雨水(Java)

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3…

c4d云渲染是工程文件会暴露吗?

在数字创意产业飞速发展的今天&#xff0c;C4D云渲染因其高效便捷而备受欢迎。然而&#xff0c;随着技术应用的深入&#xff0c;人们开始关注一个核心问题&#xff1a;在享受云渲染带来的便利的同时&#xff0c;C4D工程文件安全吗&#xff1f;是否会有暴露的风险&#xff1f;下…

企业微信主体机构如何修改?

企业微信变更主体有什么作用&#xff1f; 做过企业运营的小伙伴都知道&#xff0c;很多时候经常会遇到现有的企业需要注销&#xff0c;切换成新的企业进行经营的情况&#xff0c;但是原来企业申请的企业微信上面却积累了很多客户&#xff0c;肯定不能直接丢弃&#xff0c;所以这…

【安装笔记-20240523-Windows-安装测试 ShareX】

安装笔记-系列文章目录 安装笔记-20240523-Windows-安装测试 ShareX 文章目录 安装笔记-系列文章目录安装笔记-20240523-Windows-安装测试 ShareX 前言一、软件介绍名称&#xff1a;ShareX主页官方介绍 二、安装步骤测试版本&#xff1a;16.1.0下载链接功能界面 三、应用场景屏…

Jenkins安装 :AWS EC2 Linux

1 JDK11 install # 用的yum安装 # 压缩包安装&#xff0c;下载的jdk-11.0.22_linux-x64_bin.tar.gz在EC2解压&#xff0c;配置环境变量&#xff0c;运行jenkins的时候会报错$ yum -y list java-11* Available Packages java-11-amazon-corretto-devel.x86_64 …

STM32_HAL_RTC时钟

1. RTC 时钟简介 STM32F407 的实时时钟&#xff08;RTC&#xff09;是一个独立的定时器。 STM32 的 RTC 模块拥有一组连续计数的计数器&#xff0c;在相对应的软件配置下&#xff0c;可提供时钟日历的功能。修改计数器的值可以重新设置系统的当前时间和日期。 RTC 模块和时钟配…