【轻松拿捏】Java-List、Set、Map 之间的区别是什么?

news2025/1/8 5:01:57

List、Set、Map 之间的区别是什么?

一、List

二、Set

三、Map


🎈边走、边悟🎈迟早会好

一、List

  • 有序性List 保持元素的插入顺序,即元素按添加的顺序存储和访问。
  • 允许重复List 可以包含重复的元素。
  • 实现类:常用的实现类包括 ArrayListLinkedListVector
  • 访问方式:可以通过索引访问元素,例如 list.get(0) 获取第一个元素。
  • 用法场景:适用于需要按顺序访问元素,或频繁插入、删除元素的场景。
  • 常用方法

  • add(E e): 添加元素到列表的末尾。
  • get(int index): 获取指定位置的元素。
  • remove(int index): 移除指定位置的元素。
  • size(): 返回列表中的元素数量。
  • contains(Object o): 判断列表是否包含指定的元素。
  • indexOf(Object o): 返回指定元素在列表中的第一次出现位置。
    List<String> list = new ArrayList<>();
    list.add("Apple");
    list.add("Banana");
    list.add("Apple"); // 允许重复
    System.out.println(list.get(0)); // 输出: Apple
    System.out.println(list.size()); // 输出: 3
    System.out.println(list.contains("Banana")); // 输出: true
    list.remove(1); // 移除第二个元素
    

    二、Set

  • 无序性Set 不保证元素的顺序,元素可能按照不同的顺序存储。
  • 不允许重复Set 不允许包含重复的元素,每个元素都是唯一的。
  • 实现类:常用的实现类包括 HashSetLinkedHashSet TreeSet
  • 访问方式:没有索引,通常通过迭代器访问元素。
  • 用法场景:适用于需要保证元素唯一性,或不关心元素顺序的场景。
  • Set<String> set = new HashSet<>();
    set.add("Apple");
    set.add("Banana");
    set.add("Apple"); // 不允许重复,重复的元素不会被添加
    for (String fruit : set) {
        System.out.println(fruit);
    }
    

    三、Map

  • 键值对存储Map 存储键值对,每个键唯一对应一个值。
  • 键唯一性Map 中的键是唯一的,不允许重复,但值可以重复。
  • 实现类:常用的实现类包括 HashMapLinkedHashMap TreeMap
  • 访问方式:通过键访问对应的值,例如 map.get(key) 获取对应的值。
  • 用法场景:适用于需要通过键快速查找值,或需要存储键值对的场景。
  • Map<String, Integer> map = new HashMap<>();
    map.put("Apple", 1);
    map.put("Banana", 2);
    map.put("Apple", 3); // 键是唯一的,后一个值会覆盖前一个值
    System.out.println(map.get("Apple")); // 输出: 3
    System.out.println(map.size()); // 输出: 2
    System.out.println(map.containsKey("Banana")); // 输出: true
    System.out.println(map.containsValue(2)); // 输出: true
    map.remove("Banana");
    

 🌟感谢支持 听忆.-CSDN博客

🎈众口难调🎈从心就好

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

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

相关文章

docker compose 安装 kafka

一 前置准备 创建 /data/kafkadata /data/zookeeper-1用于保存kafka和zookeeper的配置文件 kafkadata中创建三个文件夹 /kafka1 /kafka2 /kafka3&#xff0c;用于存放三个kafka节点的配置文件 zookeeper-1文件夹中创建 /conf /data /logs /datalog四个文件夹&#xff0c;用于…

AI时代,让文献主动找上门——揭开文本和数据挖掘的变革性力量

文本和数据挖掘&#xff08;text and data mining, TDM&#xff09;使用计算工具和技术来分析大型文本数据集&#xff0c;从学术论文、期刊和其他科学出版物中的大量科学数据里提取有价值的见解&#xff0c;旨在识别通过传统人工分析难以或无法发现的模式、关联和趋势&#xff…

计算机网络HTTP全讲解,让你透彻掌握HTTP协议(三)http长短连接/代理/网关/缓存/内容协商机制/断点续传

HTTP HTTP的长连接与短连接短链接长链接HTTP代理代理的作用HTTP网关web网关常见的网关类型HTTP缓存HTTP缓存头部字段HTTP缓存工作方式缓存改进方案cdn缓存工作方式浏览器操作对http缓存的影响HTTP内容协商机制客户端驱动服务器驱动请求首部集近似匹配透明协商断点续传和多线程下…

类和对象的深入了解4

1.析构函数 1.1析构函数概念 与构造函数功能相反&#xff0c;析构函数不是完成对对象本身的销毁&#xff0c;局部对象销毁工作是由编译器完成 的。而对象在销毁时会自动调用析构函数&#xff0c;完成对象中资源的清理工作。它的名字与类名相同&#xff0c;前面加上一个波浪号…

LLM大模型:十大人工智能大模型技术介绍

十大人工智能大模型技术的简介&#xff1a; 深度学习模型 深度学习是人工智能领域中一种重要的机器学习技术&#xff0c;通过构建深度神经网络来模拟人脑的认知过程。深度学习模型能够自动提取数据的特征&#xff0c;并在海量数据中进行学习和优化&#xff0c;从而在语音识别…

79.WEB渗透测试-信息收集-框架组件识别利用(3)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;78.WEB渗透测试-信息收集-框架组件识别利用&#xff08;2&#xff09;-CSDN博客 struts2…

长面板数据实证模型及 Stata 具体操作步骤

目录 一、文献综述 二、理论原理 三、实证模型 四、稳健性检验 五、程序代码及解释 六、代码运行结果 一、文献综述 长面板数据在经济学、金融学、社会学等领域的研究中得到了广泛应用。许多学者通过构建长面板数据模型来研究各种经济现象和社会问题。例如&#xff0c;在研…

乌班图下的vscode粘贴代码后一直在输入CTRLV命令

最近在VMware中使用vscode开发c程序中&#xff0c;拷贝一段代码后&#xff0c;代码界面一直输入CTRLV命令&#xff0c;导致乌班图桌面死掉&#xff0c;无法操作、 解决方法&#xff1a; 1、强制重启。长按电源按钮强制关机&#xff0c;然后再次开机。 2、使用命令行界面。同时…

电测量数据交换DLMS_COSEM组件第47部分:基于IP网络的DLMS_COSEM传输层

1.范围 本部分规定了面向无连接和连接的在IP网络中所使用的DLMS/COSEM通信协议集的传输层(TL)。 这些传输层为用户DLMS/COSEM的应用层提供OSI式服务。面向无连接的传输层基于互联网标准用户数据报协议(UDP)。面向连接的传输层基于互联网标准传输控制协议(TCP)。 DLMS/CO…

C++:map和set

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《C&#xff1a;map和set》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 如果本篇文章对你有帮助&#xff0c;还请各位点点赞&#xff01;&#xff01;…

redis的代码开发

redis是什么? 前提:官网地址https://redis.io 1.Redis是一个开源的,key,value格式的,内存型数据结构存储系统;它可用作数据库、缓存和消息中间件。 value支持多种类型的数据结构如strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglo…

亚马逊测评自养号有什么优势?

在当今竞争激烈的电商市场中&#xff0c;若想实现销量的显著增长&#xff0c;测评策略已成为不可或缺的一环&#xff0c;尤其是对于新入驻平台的店铺及推出的创新产品而言&#xff0c;仅凭初期的自然流量难以迅速脱颖而出&#xff0c;因此众多跨境卖家纷纷采用测评手段&#xf…

微信小程序教程002:代码结构介绍和新建小程序页面

文章目录 代码介绍1、小程序代码构成2、小程序页面组成部分3、JSON配置文件的作用3.1 app.json文件3.2 project.config.json文件3.3 sitemap.json文件3.4 页面的.json文件新建小程序页面WXML和WXSS介绍1、什么是WXML2、什么是WXSS小程序的JS文件1、JS文件2、小程序中JS文件分类…

【机器学习】探索图神经网络 (GNNs): 揭秘图结构数据处理的未来

&#x1f48e; 欢迎大家互三&#xff1a;2的n次方_ ​ &#x1f48e;1. 引言 图结构数据在现实世界中无处不在&#xff0c;从社交网络中的用户关系&#xff0c;到推荐系统中的用户-物品交互&#xff0c;再到生物信息学中的分子结构。传统的机器学习模型在处理这些数据时常常力…

C#高级:枚举(Enum)从索引、值到注释的完整使用技巧

目录 一、推荐的枚举写法 二、获取注释的封装代码 三、已知【枚举】&#xff0c;获取注释、索引 四、已知【索引】&#xff0c;获取枚举值、注释 五、已知【注释】&#xff0c;获取枚举值、索引 六、创建一个【枚举字典】&#xff0c;key索引&#xff0c;value(枚举值&am…

入选ICML!麻省理工团队基于AlphaFold实现新突破,揭示蛋白质动态多样性

作为生物体的重要组成部分&#xff0c;蛋白质具有不同状态&#xff0c;基于集体运动或无序波动的不同结构组合&#xff0c;采用复杂的三维结构&#xff0c;来执行丰富的生物功能&#xff0c;例如&#xff0c;蛋白质构象变化对转运体、通道和酶的功能至关重要&#xff0c;而平衡…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 围棋的气(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线…

Oracle特有的DECODE函数

Oracle中的DECODE函数是一种条件表达式函数&#xff0c;用于基于给定的条件从一组值中选择一个值返回。它的基本语法如下&#xff1a; DECODE(expression, search1, result1, [search2, result2, ...], [default])expression&#xff1a;要比较的表达式或列。searchN&#xff…

正点原子imx6ull-mini-Linux驱动之pinctrl 和 gpio 子系统(5)

1&#xff1a;pinctrl 子系统 1.1&#xff1a;pinctrl 子系统简介 Linux 驱动讲究驱动分离与分层&#xff0c;pinctrl 和 gpio 子系统就是驱动分离与分层思想下的产物&#xff0c; 驱动分离与分层其实就是按照面向对象编程的设计思想而设计的设备驱动框架 来回顾一下上一章是…

2006年威廉王子提出分手 舞会上凯特一袭护士装令他再次沦陷 迅速和好

虽然威廉王子和凯特米德尔顿是当今最有影响力和最令人心动的情侣之一&#xff0c;但许多人可能忘记了&#xff0c;早在 2006 年&#xff0c;两人还在约会时&#xff0c;他们曾短暂分手。尽管当时他们的分手可能让英国媒体感到意外&#xff0c;但不到一年后&#xff0c;两人就和…