Java集合(List、Set、Map)

Java中的集合是用于存储和组织对象的数据结构。Java提供了许多不同的集合类,包括List、Set和Map等,以满足不同的需求。下面将介绍一些常见的Java集合类及其使用方法。

一、List

List是一个有序的集合,它允许元素重复出现,并提供了索引访问元素的功能。List可以通过以下方式创建:

List<String> list = new ArrayList<>(); // 使用ArrayList实现List

在创建List之后,可以使用add()方法添加元素,使用get()方法获取元素,使用remove()方法删除元素等。

例如,以下代码向List中添加了三个元素,然后打印了第三个元素,并从List中删除了第二个元素:

list.add("apple");  
list.add("banana");  
list.add("orange");  
System.out.println(list.get(2)); // 输出"orange"  
list.remove(1); // 删除第二个元素  
System.out.println(list); // 输出["apple", "orange"]
二、Set

Set是一个无序的集合,它不允许元素重复出现。Set可以通过以下方式创建:

Set<String> set = new HashSet<>(); // 使用HashSet实现Set

在创建Set之后,可以使用add()方法添加元素,使用contains()方法判断元素是否存在于集合中,使用remove()方法删除元素等。

例如,以下代码向Set中添加了三个元素,然后打印了Set中是否包含"banana"和"orange",并从Set中删除了"apple":

set.add("apple");  
set.add("banana");  
set.add("orange");  
System.out.println(set.contains("banana")); // 输出true  
System.out.println(set.contains("pear")); // 输出false  
set.remove("apple"); // 删除"apple"元素  
System.out.println(set); // 输出["banana", "orange"]

三、Map

Map是一种键值对的数据结构,它允许将键映射到值。Map可以通过以下方式创建:

Map<String, Integer> map = new HashMap<>(); // 使用HashMap实现Map

在创建Map之后,可以使用put()方法添加键值对,使用get()方法获取值,使用containsKey()方法判断键是否存在于Map中等。

例如,以下代码向Map中添加了三个键值对,然后打印了键"banana"对应的值,并从Map中删除了键"apple":

map.put("apple", 1);  
map.put("banana", 2);  
map.put("orange", 3);  
System.out.println(map.get("banana")); // 输出2  
System.out.println(map.containsKey("pear")); // 输出false  
map.remove("apple"); // 删除键"apple"对应的键值对  
System.out.println(map); // 输出["banana":2, "orange":3]

 

总结:Java提供了多种集合类来满足不同的数据结构需求。List是一个有序的集合,允许元素重复出现;Set是一个无序的集合,不允许元素重复出现;Map是一种键值对的数据结构,允许将键映射到值。在使用集合时,我们应该根据具体的需求选择合适的集合类来存储和组织数据。

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

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

相关文章

ArcGIS Pro工具一部分解释

序号 工具 功能介绍 1. 打包工程(PackageProject) 把工程所有内容打包一个文件 2. 合并工程(ConsolidateProject) 把工程和数据整理到同一个文件夹下 3. 要素转线(FeatureToLine) 把面要素转线要素或线要素打断 4. 定义投影(DefineProjection)

three.js学习记录(基础)

前言&#xff1a; 页面渲染3D特效&#xff0c;可以从各种图表库&#xff08;例如ECharts&#xff09;中寻找各种适用的模版&#xff0c;也可以寻找第三方插件。。。 一直以来都对three.js充满向往&#xff0c;终于偷闲找了个借口学了起来 参考资料 Three.js – JavaScript 3D…

什么?微信朋友圈能够一键转发了?

作为「国民级」聊天软件&#xff0c;微信朋友圈功能一直备受关注&#xff0c;毕竟社交 3 大巨头中&#xff0c;QQ 和微博都可以转发动态。那微信朋友圈能不能也像 QQ 空间这样&#xff0c;点击转发能分享到 QQ、微信和朋友圈呢&#xff1f; 那到底朋友圈转发怎么个转法&#xf…

流程图实现,基于vue2实现的流程图

1.基本思路 flex布局 伪元素实现竖直的连接线组件递归 2.效果图 2.1基础的&#xff08;未截全&#xff0c;大致长这样&#xff09; 2.2带有收缩功能的&#xff0c;可以展开和收缩并显示数量 3.待需要优化的点&#xff0c;根节点居中是基于整个流程图大小的来居中的&#xf…

使用 appium 进行微信小程序的自动化测试

目录 前言&#xff1a; 微信小程序结构 自动化用例的调整 示例代码 后记 前言&#xff1a; 微信小程序是一种流行的移动应用程序&#xff0c;它在移动设备上提供了丰富的功能和用户体验。为了确保微信小程序的质量和稳定性&#xff0c;自动化测试是必不可少的一环。Appiu…

肖sir___环境相关的面试题

环境相关面试题 1、请简述多有米环境的搭建、用到了哪些工具和流程介绍? jdk、服务器、代码包、数据库 2、查看当前端口被哪个应用程序占用了&#xff1f; netstat -ntlp |grep 端口号 lsof -i &#xff1a;端口号 ps -ef|grep 端口号 3、Tomcat和Nginx的区别&#xff0c;ngi…

VCSEL器件的常见参数有哪些?如何测试?

概述 垂直腔面发射激光器(VCSEL)是一种激光发射方向垂直于P-N结平面,而谐振腔面平行于P-N结平面的半导体激光器,它属于面发射激光器的一种。而EEL边射型激光器的光则是沿着水平方向,由芯片的边缘射出。与EEL相比, VCSEL的生产过程更具经济效益并且响应快,因此在越来越多的应用中…

element-ui message消息提示组件 ①延长提示消息在页面停留时间②提示消息换行

以实现下面的效果为示例 完整代码&#xff1a; let msgList ["数据1被引用", "数据2被引用"];// 使用html的换行标签拼接信息&#xff0c;默认行距太小&#xff0c;此处用两个<br/><br/>let message 以下数据不能删除&#xff0c;原因是&…

oracle常见面试回答

以下是Oracle面试中常见的一些问题和附加答案&#xff1a; 问题&#xff1a;什么是Oracle分区表&#xff1f; 答案&#xff1a;Oracle分区表是一种将表分成多个部分的机制&#xff0c;这些部分被称为分区。每个分区都是一个独立的对象&#xff0c;可以单独管理和维护。分区表…

2023出海增长背后的隐忧

2023出海增长背后的隐忧 2023.7.19版权声明&#xff1a;本文为博主chszs的原创文章 今年出口逆势增长的领域&#xff0c;新能源车、锂电池、太阳能电池&#xff0c;号称新三样&#xff0c;有数据支撑&#xff0c;看起来鼓舞人心。 见&#xff1a;外贸出口“新三样”&#xf…

有Root与无Root安装git-lfs

有Root与无Root安装git-lfs 直接安装 先查看arm还是AMD 例如当前使用Rocky Linux 8.8版本的内核。因此&#xff0c;应该下载适用于Rocky Linux 8.x的Git LFS安装包。 您可以按照以下步骤在Rocky Linux上安装Git LFS&#xff1a; 打开终端或命令提示符窗口。 使用以下命令下…

python、go观察者模式

观察者模式&#xff0c;核心在于 被观察者的信息发生改变会通知观者者被观察者可以添加和删除观察者观察者需要有更新的行为 python实现 # 观察者 class Observer:def __init__(self, name):self.name namedef update(self, content):print(f"【{self.name}】接收到消…

【半监督医学图像分割 2023 CVPR】PatchCL

文章目录 【半监督医学图像分割 2023 CVPR】PatchCL摘要1. 简介2. 相关工作2.1 半监督学习2.2 对比学习 3. 方法3.1 类感知补丁采样3.2 伪标记引导对比损失3.3 总体学习目标3.4 伪标号生成与求精 4. 实验5. 结果 【半监督医学图像分割 2023 CVPR】PatchCL 论文题目&#xff1a;…

java: 错误: 不支持发行版本 5 java: 错误: 不支持发行版本8 java: 错误: 不支持发行版本17

&#x1f353;&#x1f353;原因 该错误表示你使用的Java编译器不支持Java 5版本的发行。Java版本的发行是根据不同的功能和语言变化来区分的。 要解决这个问题&#xff0c;你可以尝试以下几种方法&#xff1a; 检查编译器配置&#xff1a;确保你的IDE或编译器已正确配置为使…

【C++初阶】list的模拟实现 附源码

一.list介绍 list底层是一个双向带头循环链表&#xff0c;这个我们以前用C语言模拟实现过&#xff0c;->双向带头循环链表 下面是list的文档介绍&#xff1a; list文档介绍 我们会根据 list 的文档来模拟实现 list 的增删查改及其它接口。 二.list模拟实现思路 既然是用C模拟…

缓存数据一致性探究

缓存数据一致性探究 缓存是一种较低成本提升系统性能的方式&#xff0c;自它面世第一天起就备受广大开发者的喜爱。然而正如《人月神话》中的那句经典的“没有银弹”中所说&#xff0c;软件工程的设计没有银弹。 就像每一次发布上线修复问题的同时&#xff0c;也极易引入新的问…

js中${}的用法

${xx}:是一种前端模板字符串的写法&#xff0c;${}结构包裹着变量xx&#xff1b;这里的$是写法要求。 作为ES6中新增的字符串方法&#xff0c;其作用是配合反单引号实现字符串拼接。代替以前传统复杂的引号双引号与的拼接&#xff0c;简介明了&#xff0c;非常好用。 反单引号&…

Docker学习路线8:容器注册表

容器注册表是Docker容器镜像的集中存储和分发系统。它允许开发人员以这些镜像的形式轻松共享和部署应用程序。容器注册表在容器化应用程序的部署中发挥着关键作用&#xff0c;因为它们提供了一种快速、可靠和安全的方式&#xff0c;在各种生产环境中分发容器镜像。 以下是当今…

[centos]安装mysql8.0.26

1、首先&#xff0c;根据自己的机子到MySQL官网下载对应的数据库https://dev.mysql.com/downloads/mysql/ 2、卸载mariadb&#xff0c;并解压Mysql 3、安装 rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm --nodeps rpm -ivh mysql-community-libs-8.0.26-1.el7.x…

RT-Thread 学习-Env开发环境搭建(一)

Env是什么 Env 是 RT-Thread 推出的开发辅助工具&#xff0c;针对基于 RT-Thread 操作系统的项目工程&#xff0c;提供编译构建环境、图形化系统配置及软件包管理功能。 其内置的 menuconfig 提供了简单易用的配置剪裁工具&#xff0c;可对内核、组件和软件包进行自由裁剪&…