Java容器的概述(Set、List、Map、Queue)

Java学习-Set容器 Set容器 Set就是我们数学中的集合,其是无续(与你插入元素顺序不一致)且不能够重复的 Set容器的分类 HashSet:底层由哈希表+红黑树实现,无续(与你插入元素顺序不一致),利用HashSet可以快速查找,效率很高 LinkedHashSet继承HashSet,其底层是哈希表+双向链表,可以实现迭代有序,但其查找效率相对于HashSet,没有其高 TreeSet:底层由红黑树实现,可以实现按照元素的大小写进行排序 之间的继承关系如下: HashSet HashSet底层就是HashMap的KE 阅读详情


1.Set(无重复元素、无序)

  • TreeSet:基于红黑树实现,支持有序性操作,例如根据一个范围查找元素的操作。但是查找效率不如 HashSet,HashSet 查找的时间复杂度为 O(1),TreeSet 则为 O(logN)。
  • HashSet:基于哈希表实现,支持快速查找,但不支持有序性操作。并且失去了元素的插入顺序信息,也就是说使用 Iterator 遍历 HashSet 得到的结果是不确定的。
  • LinkedHashSet:具有 HashSet 的查找效率,并且内部使用双向链表维护元素的插入顺序。

2.List(允许有重复元素,线性方式存储、有序)

  • ArrayList:基于动态数组实现,支持 随机访问。
  • Vector:和 ArrayList 类似,但它是线程安全的。
  • LinkedList:基于双向链表实现,只能顺序访问,但是可以快速地在链表中间插入和删除元素。不仅如此,LinkedList 还可以用作栈、队列和双向队列。

3.Queue

  • LinkedList:可以用它来实现双向队列。
  • PriorityQueue:基于堆结构实现,可以用它来实现优先队列。

4.Map(键值对形式进行存储)

 

  • TreeMap:基于红黑树实现。
  • HashMap:基于哈希表实现。
  • HashTable:和 HashMap 类似,但它是线程安全的,这意味着同一时刻多个线程同时写入 HashTable 不会导致数据不一致。它是遗留类,不应该去使用它,而是使用 ConcurrentHashMap 来支持线程安全,ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁。
  • LinkedHashMap:使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序。
【低空经济】森林火情高精度监测与早期预警无人机巡护方案 在全球范围内,森林火灾已成为一个严重的生态和社会问题。它不仅对自然生态系统造成了毁灭性的影响,还对人类的生命财产安全构成了极大的威胁。根据国际森林发展组织的统计,全球每年因森林火灾造成的经济损失高达数百亿美元,甚至在某些年份,火灾损失占到某些国家国民经济总量的相当一部分。因此,开展高效的森林火情监测与早期预警工作显得尤为重要。随着科技的发展,无人机作为新兴的监测工具,以其高效、灵活和经济的特点在森林火灾监测领域展现出了巨大的潜力。 阅读详情

相关推荐

CAN信号定义避坑指南:Kvaser Database Editor里Byteorder和Bitpos设置的那些‘坑’

本文详细解析了在Kvaser Database Editor中配置CAN信号时,字节序(Byteorder)和起始位(Bitpos)设置的常见错误及解决方案。通过实际案例和验证技巧,帮助工程师避免DBC文件配置中的陷阱,确保车载电子系统的稳定通信。

weixin_28678831的博客 360

Java 容器简介

Java 容器简介,Java 容器类型

codeboys的专栏 2269

UniApp实战:从文件下载到本地保存与预览的一站式解决方案

本文深入解析了UniApp开发中文件下载、保存与预览的完整流程,提供了基于uni.downloadFile、uni.saveFile和uni.openDocument API的一站式实战解决方案。文章详细拆解了核心API的使用方法、多平台(App、H5)的兼容性处理、常见坑点(如文件路径、权限、格式支持)以及进阶优化技巧(如进度提示、文件管理),旨在帮助开发者构建健壮、用户体验良好的跨平台文件处理功能。

d3e4f的博客 614

Java容器|Deque与Queue

队列通常但不一定以 FIFO(先进先出)方式对元素进行排序。 例外情况包括优先级队列,它根据提供的比较器或元素的自然顺序对元素进行排序,以及对元素 LIFO(后进先出)进行排序的 LIFO 队列(或堆栈)。

奈川直子 476

Vivado与VCS+Verdi联合仿真环境搭建全攻略

本文详细介绍了如何搭建Vivado与VCS+Verdi联合仿真环境,旨在解决Vivado Simulator在大型FPGA验证中速度慢、调试弱的问题。通过指导工具版本配对、环境变量设置、关键参数配置及Xilinx仿真库编译,帮助工程师高效整合Vivado的设计管理、VCS的高速仿真与Verdi的深度调试能力,从而显著提升验证效率。

weixin_29219189的博客 576

vue 获取el-table多选的选中行

<el-table :data='tableData' ref="multipleTable" v-loading='loading' border max-height='700' style='width: 100%' size="mini"> <el-table-column type="selection" width="55"></el-table-column> <el-table-column label

且听风吟的博客 6649

Java容器List、Set、Map详解

1.List、Set、Map概述       Collection List Set Map 区别记忆这些都代表了Java中的集合,这里主要从其元素是否有序,是否可重复,是否线程安全来进行区别记忆,以便恰当地使用。List接口对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList、LinkedList和Vector。你可以将任何东西放到一个List容器中,并在需要时从中取...

Gandoph的博客 981

虚拟化 之三 详解 ARM 平台 jailhouse 的移植适配、构建及使用(飞腾派)

本文将探索学习通过在飞腾官方提供的 Buildroot 构建系统移植适配 openEuler 内核以及 jailhouse 源码 Package 进而直接构建一个适用于飞腾派开发板的带有 jailhouse 的 openEuler 发行版。

技术干货 1003

Java容器学习:List、Set、Queue、Map

一、容器 很多时候,程序总是根据运行时才知道的某些条件去创建新对象,在此之前不知道所需对象的数量,甚至对象的类型,这时就需要容器来保存对象。Java容器类可以自动地调整自己的尺寸。容器类类库可以划分为两个不同的概念: Collection。一个独立元素的序列,如List(按照插入顺序保存元素),Set(不能有重复元素),Queue(按排队规则确定对象产生的顺序);Map。一组成对的“键

胸口好想碎大石 832

【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中)

你是否在全网苦寻【图像去噪(ImageDenoising)】的相关资料?你的目标是否是看懂【图像去噪(ImageDenoising)】的相关论文,复现代码,跑出结果,并试图创新?你是否需要发表【图像去噪(ImageDenoising)】的相关论文毕业?你是否需要做【图像去噪(ImageDenoising)】的相关项目,开发软件,研究算法,获得专利或者软著?只要是与【图像去噪(ImageDenoising)】有关的问题,那么请继续往下看。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 2万+

华为OD机考双机位C卷 - 补种未成活胡杨 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 补种未成活胡杨(OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 2418

Java中常用的四大容器总结

一、为什么要使用容器(集合类)? 二、Java中四大容器的简介与区别。 三、Java的容器体系。 一: 1.需求:某些时候,我们需要在任意时刻和任意位置创建任意数量的对象。 2.数据的缺陷1,具有固定的尺寸,而在实际的使用中我们不好估计自己需要多少的对象。数组的缺陷2,没法支持更加复杂的数据结构。 3.Java中容器的好处就是在于可以自动地调整自己的尺寸大小。在实际的编程中可以往容器中放置任何数量的对象,而不用担心容器应该设置成多大。 4.不同的容器还有其特殊的属性。 List:特定顺序保存一组数据。 Se

m0_46565430的博客 4604

MFC实现简单UDP通信(附完整源码)

MFC实现简单UDP通信(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1108

Java学习笔记——持有对象

本文为Java编程思想第四版的学习笔记,在此感谢作者Bruce Eckel给我们带来这样一本经典著作,也感谢该书的翻译及出版人员。本文为原创笔记,转载请注明出处,谢谢。 如果一个程序只包含固定数量的且其生命周期都是已知的对象,那么这时一个非常简单的程序。通常,程序总是根据运行时才知道的某些条件去创建新对象。在此之前,不会知道所需对象的数量,甚至不知道确切的类型。为解决这个普遍的编程问题,

vinnyaptx4869的专栏 766

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

java学习容器接口

容器中的七大接口 1.Collection接口 2.Map接口 3.Set接口 4.List接口 5.Queue接口 6.Iterator接口 7.Comparable接口 其中List, Queue和Set接口继承了Collection接口,剩下的接口之间都是相互独立的,无继承关系。List和Set接口主要是为了区分是否要包含重复元素,Iterater迭代器则是为了更灵活的迭代集合,与forea...

gpsyougo的博客 316

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

快速了解Java容器

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录一、容器是什么?二、集合1.List2.Map3.Set4.Queue 一、容器是什么? 容器可以存储对象和基本数据类型,数组就是容器 数组的优势:是一种简单的线性序列,可以快速访问数组元素,效率高 数组的劣势:不灵活,必须实现定义好长度,不能随着需求而扩充 在Java中容器和集

Add小兵的博客 158

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JAVA学习【知】容器(一)

1.对容器做大致的概括2.介绍 Collection,MAP接口 1.容器是什么?从字面理解我可以想到容器就是用来装东西的,在JAVA里就是用来装对象的,比如我们学过的数组他就是一个容器,当然除了数组还有其他类似数组的容器 2.容器的作用 容器好比我们灌水,我们可以选择用瓶子也可以选择用碗也可以用桶当然也可以用缸,所以说不同的对象我们可以选择适合的容器去装他。JAV

路人甲的专栏 653

Java容器小结

Java容器小结 1.Collection接口 Collection接口下主要是List、Set、Queue三个子接口 1.1 List接口(元素可以重复) 主要实现类为ArrayList和LinkedList。Vector是古老实现类。 //增删改查方法 public void add(Object element) //增添元素 public void add(int index,Object element) //在指定位置增添元素 public boolean remove(Object o) /

qq_35926606的博客 154

Java 容器简单总结

Java所自带的容器,几乎可以满足我们日常开发中对数据结构的需求,这里做一个小小的简单总结,但并不会去深究其细节与实现 Java简单的容器分类如下图: 其实只有四种容器:List、Set、Queue、Map,他们各自包含有不同功能的实现版本。 List: 1.ArrayList:一种可以动态增长和缩减的索引序列 2.LinkedList:一种可以在任何位置进行高效地插入和删除操作的有序序列 Se...

Leslie-心蓝 245

JAVA容器

二、容器 18.java 容器都有哪些? JAVA中的容器类主要分为两大类,一类是Map类,一类是Collection类,他们有一个共同的父接口Iterator,它提供基本的遍历,删除元素操作。Iterator还有一个子接口LinkIterator,它提供双向的遍历操作。 Collection是一个独立元素的序列,这些元素都服从一条或多条规则,它有三个子接口List,Set和Queue。其中List必须按照插入的顺序保存元素、Set不能有重复的元素、Queue按照排队规则来确定对象的产生顺序(通常也是

happiniess的专栏 173

Java杂记

char、byte或short类型的数值进行移位处理,那么在移位进行前,它们会被转换成int类型,并得到的结果也是int型   (窄化转换、扩展转换)   int型的0的非:~0等于-1 (int型的0的2进制是32个0,~0的二进制就是32个1,故为-1)   Java没有sizeof,C/C++中用于获得数据项分配的字节数,主要为了“移植”,因为不用的数据类型在不

懒人0zz 924

读书笔记 | 《Think in Java》Ⅺ 持有对象

Ⅺ 持有对象 大部分情况下,对象的存在数量和生命周期都是未知的,程序总是根据运行时才能得到的某些条件去创建新对象。为了解决这个问题,我们需要拥有在任意时刻和任意位置,创建任意数量的对象的能力。 Java有多种方式来保存对象的引用。比如说数组,但是数组具有固定的尺寸,这一特性使他十分局限。 Java类库中提供了一套相当完整的容器来解决这个问题,Collection只是这个类库中的一个特殊子集。在这...

weixin_33982670的博客 109

java 数据结构有哪些?

1. java八大基本数据类型及其包装类: boolean : Boolean, byte:Byte, short:Short, int:Integer, long:Long, float:Float, double:Double 2. String 字符串类型 3. 容器类      collection —— List                        |—— Set

rengq126的专栏 2426

Java 集合学习总结

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33953384的博客 76

java容器

1、Collection与Collections的区别:例如Collection.addAll()与Collection.addAll()的区别 2、Arrays.asList()返回一个受指定数组支持的固定大小的列表,其底层是数组,所以不能调整尺寸(不支持add、delete操作) 3、基本的容器类:List Set Queue Map,其中List、Set、Queue继承于Collecti...

iteye_10347的博客 121

第二周:java异常和常用类 容器

一、java异常类 1.定义 异常就是在运行时产生的问题。通常用Exception描述。 在java中,把异常封装成了一个类,当出现问题时,就会创建异常类对象并抛出异常相关的信息(如详细信息,名称以及异常所处的位置)。 2.异常的继承关系 ![Throwable类是所有错误跟异常类的超类(祖宗类)。 Exception异常类及其子类都是继承自Throwable类,用来表示java中可能出现的异常,并且合理的处理这些异常。 RuntimeException类是运行异常类,继承自Exception类,它以及它的

Ma_Monkey的博客 431
上一篇: Java基础之反射、异常、泛型、注解
下一篇: Java容器的设计模式
trytrylmt
博客等级 码龄9年 7粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值