List、Set、Map的区别?

news2024/11/15 16:57:31
  • List 是一个有序集合,里面可以存储重复元素
  • Set 是一个不能存储相同元素的集合
  • Map 是一个通过键值对的方式存储元素的,键不能重复

Java 容器分为Collection 和Map 两大类,Collection 集合的子接口有Set、List、Queue 三种子接口。其中,前两种Set、List比较常用,Map 接口不是Collection 的子接口

  • Collection 集合主要有List Set 两大接口
    • List : 一个有序(元素存入集合的顺序和取出顺序一致)容器,元素可以重复,可以插入多个null元素,元素都有索引。常用实现类ArrayList、LinkedList 和 Vector.
    • Set : 一个无序(存入和取出顺序有可能不一致)容器,不可以存储重复元素,允许存入一个null元素,必须保证元素唯一性。常用实现类HashSet、LinkedHashSet 以及TreeSet.
  • Map 是一个键值对集合,存储键、值和之间的映射Key无序,唯一value 不要求有序,允许重复。Map 没有继承Collection 接口,从Map 集合中检索元素时,只要键对象,就会返回对应的值对象。常用实现类HashMap、TreeMap、HashTable、LinkedHashMap、ConcurrentHashMap

List 和 Map 的区别?

List : 是存储单列数据的集合,数据有顺序,允许重复;

Map : 是存储键和值的双列数据的集合,无顺序,其键不能重复,值可以重复。

总结:

  1. List 有重复值,Map 没有重复 key,但可以有重复值
  2. List 有序,Map 不一定有序
  3. List 只能存单列值,Map 可以存双列值

List、Set、Map三个接口存取元素时,各有什么特点?

List 以特定索引来存取元素,可以有重复元素

Set 不能存放重复元素(用对象的equals()方法区分元素是否重复)。

Map 保存键值对(key-valuepair)映射,映射关系可以是一对一多对一

Set 和 Map 容器都有基于哈希存储和排序树的两种实现版本,

基于哈希存储的版本理论存取时间复杂度为O(1),

而基于排序树版本的实现在插入或删除元素时会按照元素或元素的键(key)构成排序树从而达到排序和去重的效果。

List、Set、Map是否继承自Collection接口?

List、SetMap不是

Map 是键值对映射容器,与List 和 Set 有明显区别,

Set 存储的零散元素不允许有重复元素(数学中集合也是如此),

List 是线性结构容器,适用于按数值索引访问元素的情形。

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

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

相关文章

CSDN MD编辑器跳转方法及字体格式

一、点击关键语句跳转指定位置 在CSDN写文章的时候,写的文章过长往往会让读者很难找到自己想看的部分,这时候有个 跳转到指定位置功能 就非常的便利。CSDN在MD编辑器上(富文本编辑器只有一种)就提供了两种跳转到指定位置的方法: 一、目录跳转…

HackTheBox-关卡Fawn

1. 连接靶场,打开FAWN实例场景,检查是否互通 TASK1 3 个字母的首字母缩写词 FTP 代表什么? 答案是:File Transfer Protocol TASK2 问题是:FTP服务通常监听哪个端口? FTP监听的TCP端口号为21,监听的数据端…

【自动化测试】selenium工具

文章目录 为什么要做自动化测试?为什么选用Selenium?Selenium的工作原理SeleniumJava环境搭建Selenium常用API浏览器参数配置定位元素操作测试对象时间等待信息打印对浏览器操作键盘与鼠标操作屏幕截图弹窗处理选择框的处理上传文件 JUnit单元测试注解参…

睡岗识别 TensorFlow

睡岗识别可以通过TensorFlowAI深度学习框架智能分析技术,睡岗识别识别出现场人员是否存在睡岗情况,及时发出预警,避免因操作人员的疏忽而导致的安全事故。TensorFlow 是一个开源的机器学习的框架,我们可以使用 TensorFlow 来快速地…

3年自动化测试这水平?我还不如去招应届生...

公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。看简历很多都是3年工作经验,但面试…

【Python Seaborn】零基础也能轻松掌握的学习路线与参考资料

Python Seaborn是一个基于Python的可视化库,为Matplotlib库的扩展,提供了更加高级的数据可视化功能和丰富的统计图形。在学习Python数据科学和机器学习中,Seaborn有很好的数据可视化工具,也能够提供有帮助的统计图表来揭示数据之间…

实时频谱-2.5DPX

数字荧光显示 “数字荧光”一词源自包在阴极射线管(CRT)上的荧光,电视机、计算机监视器和其它测试设备显示器都使用阴极射线管。在电子束激活荧光时,它会发出荧光,照亮电子流画出的路径。 尽管液晶显示器(LCD)之类的光栅扫描技术由于厚度和…

29 KVM管理系统资源-调整虚拟CPU绑定关系

文章目录 29 KVM管理系统资源-调整虚拟CPU绑定关系29.1 概述29.2 操作步骤 29 KVM管理系统资源-调整虚拟CPU绑定关系 29.1 概述 把虚拟机的vCPU绑定在物理CPU上,即vCPU只在绑定的物理CPU上调度,在特定场景下达到提升虚拟机性能的目的。比如在NUMA系统中…

基于孪生网络的目标跟踪

一、目标跟踪 目标跟踪是计算机视觉领域研究的一个热点问题,其利用视频或图像序列的上下文信息,对目标的外观和运动信息进行建模,从而对目标运动状态进行预测并标定目标的位置。具体而言,视觉目标(单目标)…

JMeter+Grafana+Influxdb搭建可视化性能测试监控平台原创

【背景说明】 使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和明了,所以我们需要搭建一个可视化监控平台来完成结果监控,这里我们采用三种JMeterGrafanaInfluxdb的方法来完成平台搭建 如果你想视频学习Jmeter接口测试&…

长江商学院EMBA38期甄知科技:ChatGPT应用与实践初探

近期,长江商学院EMBA38期&甄知科技开展了题为“ChatGPT应用与实践初探”的线下沙龙活动,由上海甄知科技创始合伙人兼CTO张礼军主讲,主要给大家解密最近很火的ChatGPT是什么,分享如何玩转ChatGPT,初步探索ChatGPT对…

快来试试这几个简单好用的手机技巧吧

技巧一:相机功能 苹果手机的相机功能确实非常出色,除了出色的像素之外,还有许多其他实用功能可以提升拍摄体验。 这些相机功能提供了更多的选择和便利性,使用户能够更好地适应不同的拍摄需求。 自拍功能:通过选择自…

SCI图片制作排版全流程及论文配图规范

目录 引言 一、图片尺寸与格式要求 二、图片处理和组图排版的流程 1. 确定排版 2. 用PS处理位图 3. 生成矢量统计图 4. 用AI制作模式图并处理 5. 用AI制作排版组图 6. 导出为.tiff或.eps 三、图片素材与示意图的绘制方法 1. 绘制图片素材 2. 绘制示意图 结论 引言…

硬件系统工程师宝典(25)-----四种BJT应用电路分析

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到晶体三极管(BJT)可以看成是一个通过“监视”基极-发射极电流来控制集电极-发射极电流的元器件,并给出…

使用决策树模型Titanic数据集预测

数据准备 可以通过以下链接获取数据集: 百度网盘 请输入提取码 共包含三个csv文件: 《train.csv》训练数据集,包含特征信息和标签(是否幸存) 《test.csv》 测试数据集, 只包含特征信息 《gender_submission.csv》测试数据集…

远程FTP连接等

R1: <R1>ftp 192.168.2.100 用户名&#xff1a;1 密码&#xff1a;1 [R1-ftp]dir //查看当前FTP服务器中的文件列表 ..................... shengji.txt //复制想要下载的文件名 [R1-ftp]get 文件名 //下载相应的文件 [R1-ftp]q //返回R1设备 <R1>di…

观察级水下机器人使用系列之一系统构成

我们单位最近购买了一台观察级水下机器人&#xff08;ROV&#xff09;&#xff0c;型号为Seatronics Valor&#xff0c;工作最大水深300m。Valor ROV是一个计算机控制的电动ROV系统&#xff0c;使用Greensea Systems公司的OPENSEA控制系统。该系统需要一个三相电源380V输入&…

Model-Free TD Control: Sarsa

import time import random # 相对于Q 效果会差一些 class Env():def __init__(self, length, height):# define the height and length of the mapself.length lengthself.height height# define the agents start positionself.x 0self.y 0def render(self, frames50):fo…

二、go语言的编码规范

编码规范 一、 命名规范 Go在命名时以字母a到Z或a到Z或下划线开头&#xff0c;后面跟着零或更多的字母、下划线和数字(0到9)。Go不允许在命名时中使用、$和%等标点符号。Go是一种区分大小写的编程语言。因此&#xff0c;Manpower和manpower是两个不同的命名。 当命名&#xf…

华为OD机试真题 Java 实现【组装新的数组】【2023Q1 200分】

一、题目描述 给你一个整数M和数组N,N中的元素为连续整数&#xff0c;要求根据N中的元素组装成新的数组R。 组装规则&#xff1a; R中元素总和加起来等于M&#xff1b;R中的元素可以从N中重复选取&#xff1b;R中的元素最多只能有1个不在N中&#xff0c;且比N中的数字都要小…