Java有哪些常用的集合?
1、典型回答
在 Java 中,常用的集合有以下几个:
- 列表(List):有序集合,可以包含重复元素。常见实现类有 ArrayList、LinkedList、 Vector 等
- 集合(Set):无序集合,不允许包含重复元素。常见实现类有 HashSet、TreeSet 等
- 队列(Queue):先进先出的数据结构。常见实现类有 BlockingQueue、 PriorityQueue 等
- 栈(Stack):先进后出的数据结构
- 字典(Map):键值对的集合,每个键只能对应一个值。常见实现类有 HashMap、TreeMap、LinkedHashMap 等
其中,List、Set、Queue、Stack 都属于 Collection 的子类,如下图所示:

而 Map 也属于单独的一个分类,如下图所示:

2、全面剖析
在 Java 中,集合(Collections) 是一种用于存储和操作一组对象的数据结构。它们通过一组接口和类来实现,提供了丰富的方法和功能,使得对数据的处理更加方便和高效
Java 提供了多个集合接口和类,最常用的集合接口包括 List、Set、Map 等。其中,List 接口表示一个有序的集合,可以包含重复的元素;Set 接口表示一个不重复的集合;Map 接口表示一组键值对的映射关系。除此之外,还有队列 Queue 和栈 Stack 比较常见。
3、知识扩展
数组 VS 集合
在Java 中,数组属于一种特殊的数据结构。它是一种固定大小的、用于存储相同类型的多个元素的一种容器。数组在内存中是一个连续的存储区域,可以通过索引来访问其中的某个元素
数组的使用如下:

以上程序的执行结果如下:

而集合,是一种用于存储和操作一组对象的数据结构。它们通过一组接口和类来实现,提供了丰富的方法和功能使得对数据的处理更加方便和高效。
以下是关于集合 List 的使用:

以上程序的执行结果如下:

所以,从严格意义上来讲,数组和集合都是用于存储数据的容器,但数组不属于集合。
- 数组是一种特殊的数据结构,用于存储相同类型的多个元素。它在内存中是一个连续的存储区域,并且可以通过索引进行快速访问,数组在创建时需要指定固定大小。
- 集合(Collections) 是 Java 提供的一组接口和类,用于存储和操作一组对象。它们提供了更丰富的功能,例动态大小调整、插入、删除、查找等操作。常见的集合类包括 List,Set,Map 等,集合可以动态调整大小。此外,集合提供了更多的高级功能和方便的方法,例如遍历、过滤、排序等操作。
相关文章:
Java有哪些常用的集合?
1、典型回答 在 Java 中,常用的集合有以下几个: 列表(List):有序集合,可以包含重复元素。常见实现类有 ArrayList、LinkedList、 Vector 等集合(Set):无序集合,不允许包含重复元素。常见实现类有 HashSet、…...
虚拟机网络链接
在虚拟网络设置中找到如下界面: "子网 IP" 192.168.79.0/24 表示一个局域网络,它有254个可能的IP地址可供分配(192.168.79.1到192.168.79.254),255.255.255.0 是子网掩码,定义了网络和主机部分。…...
代码随想录阅读笔记-字符串【反转字符串】
题目 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印…...
4. Linux文件属性和目录系列
在 Linux 系统中,文件和目录是基本的文件系统组成部分。文件系统是用于组织和存储文件的一种结构,而文件和目录则是文件系统的核心元素。以下是对 Linux 文件和目录的详细解释: 1. 文件(File) 在 Linux 中,文件是数据的集合,可以是文本文件、二进制文件、设备文件等。…...
Linux第78步_使用原子整型操作来实现“互斥访问”共享资源
使用原子操作来实现“互斥访问”LED灯设备,目的是每次只允许一个应用程序使用LED灯。 1、创建MyAtomicLED目录 输入“cd /home/zgq/linux/Linux_Drivers/回车” 切换到“/home/zgq/linux/Linux_Drivers/”目录 输入“mkdir MyAtomicLED回车”,创建MyA…...
C++——C++11(3)
C——C11(3) lambda表达式(匿名的仿函数对象)一些注意点lambda捕捉列表[][&][this] lambda的赋值 function包装器function成员函数的包装 bind绑定参数 我们今天接着来了解一下C11一些新的特性,如果还没有看过上两…...
更改el-tabs默认样式,实现tab标签居中显示,标签对应内容使用另一个div显示
首先看效果图 如图所示,标签在浏览器窗口居中,但是下面的内容依然是默认从左到右,不会受到tab样式的影响 <template><div><div style"display: flex; justify-content: center; align-items: center;"><el-…...
微信小程序原生<map>地图实现标记多个位置以及map 组件 callout 自定义气泡
一、老规矩先上效果图: 二、在pages文件夹下新建image文件夹用来存放标记的图片。 三、代码片段 也可以参考小程序文档:https://developers.weixin.qq.com/miniprogram/dev/component/map.html index.wxml代码 <mapid="map"style="width: 100%; height:1…...
外包干了3天,技术明显进步。。。。。
先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近2年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…...
Transformer学习笔记(二)
一、文本嵌入层Embedding 1、作用: 无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示,希望在这样的高维空间捕捉词汇间的关系。 二、位置编码器Positional Encoding 1、作用: 因为在Transformer…...
C#求水仙花数
目录 1.何谓水仙花数 2.求三位数的水仙花数 3.在遍历中使用Math.DivRem方法再求水仙花数 1.何谓水仙花数 水仙花数(Narcissistic number)是指一个 n 位正整数,它的每个位上的数字的 n 次幂之和等于它本身。例如,153 是一个 3 …...
FFmpeg转码参数说明及视频转码示例
-b : 设置音频或者视频的转码码率 -b:v 只设置视频码率 -b:a 只设置音频码率 -ab: 只设置音频码率, 默认码率大小为: 128k bit/s -g: 设置视频GOP大小,表示I帧之间的间隔,默认为12 -ar: 设置音频采样率,默认0 -ac: 设置音频通道数量 默认0 -bf: 设置连…...
qiankun:vite/webpack项目配置
相关博文: https://juejin.cn/post/7216536069285429285?searchId202403091501088BACFF113F980BA3B5F3 https://www.bilibili.com/video/BV12T411q7dq/?spm_id_from333.337.search-card.all.click qiankun结构: 主应用base:vue3historyv…...
【Linux】深入了解Linux磁盘配额:限制用户磁盘空间的利器
🍎个人博客:个人主页 🏆个人专栏:Linux ⛳️ 功不唐捐,玉汝于成 前言 在多用户环境下管理磁盘空间是服务器管理中的一项重要任务。Linux提供了强大的磁盘配额功能,可以帮助管理员限制用户或组对文件系统…...
Kamailio Debian安装
新方法是: apt install -y gnupg2 wget -O- https://deb.kamailio.org/kamailiodebkey.gpg | gpg --dearmor | tee /usr/share/keyrings/kamailio.gpg 老方法是: apt install -y gnupg2 wget -O- http://deb.kamailio.org/kamailiodebkey.gpg | apt-key…...
web学习笔记(三十四)
目录 1.面向对象的特征 2.面向对象的继承方式 3.正则表达式 3.1如何创建正则表达式 3.2边界符 3.2[ ]方括号 3.3正则表达式中相关的方法汇总 1.面向对象的特征 封装性:就像是把东西放在一个密封的盒子里一样,只让外部使用者通过指定的接口来访…...
2024/03/16----面试中遇到的一些面试题
1.请简单的说一下IOC,AOP 1.1 IOC 控制反转(IOC)是一种设计思想,就是将原本在程序中需要手动创建对象,现在交由Spring管理创建,从而降低代码之间的耦合度。 IoC 最常见以及最合理的实现方式叫做依赖注入…...
【SysBench】Linux 安装 sysbench-1.20
安装目的是为了对 MySQL 8.0.x 、PostgreSQL 进行基准测试。 0、sysbench 简介 sysbench 是一个可编写脚本的多线程基准测试工具,基于 LuaJIT 。 它最常用于数据库基准测试,但也可以 用于创建任意不涉及数据库服务器的复杂工作负载。 sysbench 附带以…...
设计模式 — — 代理模式
一、是什么 代理模式(Proxy Pattern)是为一个对象提供一个代用品或占位符,以便控制对它的 生活场景: 租房、买房,比如链家等房屋中介机构,起到的作用就是代理 二、使用 const proxy new Proxy(target, …...
【高通camera hal bug分析】高通自带相机镜像问题
首先打了两个log,一个是开启镜像的log,还有一个是没有开启镜像的log,如果我们开启镜像以后,观察开启镜像log发现 , 这段代码走的没有任何问题,因为Flip的值等于1了。 关闭镜像log如下: 如果我们不开启镜像…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
