Java集合常见问题

主图==========

目录

Java集合

  • 1.前言
  • 2.集合
  • 3.Collection接口类
    • 3.1 List接口
      • 3.1.1 ArrayList(常用)
      • 3.1.2 LinkedList(常用)
      • 3.1.3 Vector(不常用)
    • 3.2 Set接口
      • 3.2.1 HashSet(常用)
      • 3.2.2 LinkedHashSet(不常用)
      • 3.2.3 TreeSet(常用)
    • 3.3 Queue接口
  • 4.Map接口类
    • 4.1 HashMap接口
    • 4.2 LinkedHashMap接口
    • 4.3 TreeMap接口
  • 5.总结
  • 参考


文章所属专区 超链接


1.前言

Java集合是Java语言中用于存储、组织数据的一组工具,它们可以帮助我们更有效地进行编程。Java集合大致可以分为以下四种类型:
List:有序集合,可以存储重复的元素3。常见的实现有ArrayList和LinkedList3。
Set:无序集合,只能存储一次,不能重复元素3。常见的实现有HashSet、LinkedHashSet和TreeSet3。
Map:键值对(key-value)的集合,键不能重复,值可以重复3。常见的实现有HashMap、LinkedHashMap和TreeMap。
Queue:先进行元素添加,后进行元素删除的队列4。常见的实现有PriorityQueue和LinkedList4。

2.集合

集合也叫容器,主要由两大类派生,一类是操作单个元素的Collection接口,另外一类是操作键值对的Map接口。其中Collection包含了List , Set ,Queue

3.Collection接口类

在这里插入图片描述

3.1 List接口

有序集合,可存储有序的可重复的元素。

3.1.1 ArrayList(常用)

底层数据结构是数组,查询快,增删慢,线程不安全,效率高。

3.1.2 LinkedList(常用)

底层数据结构是链表,查询慢,增删快,线程不安全,效率高。

3.1.3 Vector(不常用)

底层数据结构是数组,查询快,增删慢,线程安全,效率低。

3.2 Set接口

无序集合,存储无序的不可重复的元素。

3.2.1 HashSet(常用)

底层数据结构是哈希表(数组),元素无序且唯一(是否重写hashCode()和equals()方法来保证的)线程不安全,效率高。

具体实现唯一性的比较过程:存储元素首先会使用hash()算法函数生成一个int类型hashCode散列值,然后已经的所存储的元素的hashCode值比较,如果hashCode不相等,则所存储的两个对象一定不相等,此时存储当前的新的hashCode值处的元素对象;如果hashCode相等,存储元素的对象还是不一定相等,此时会调用equals()方法判断两个对象的内容是否相等,如果内容相等,那么就是同一个对象,无需存储;如果比较的内容不相等,那么就是不同的对象,就该存储了,此时就要采用哈希的解决地址冲突算法,在当前hashCode值处类似一个新的链表, 在同一个hashCode值的后面存储存储不同的对象,这样就保证了元素的唯一性。
Set的实现类的集合对象中不能够有重复元素,HashSet也一样他是使用了一种标识来确定元素的不重复,HashSet用一种算法来保证HashSet中的元素是不重复的, HashSet采用哈希算法,底层用数组存储数据。默认初始化容量16,加载因子0.75。
Object类中的hashCode()的方法是所有子类都会继承这个方法,这个方法会用Hash算法算出一个Hash(哈希)码值返回,HashSet会用Hash码值去和数组长度取模, 模(这个模就是对象要存放在数组中的位置)相同时才会判断数组中的元素和要加入的对象的内容是否相同,如果不同才会添加进去。

3.2.2 LinkedHashSet(不常用)

底层数据结构是链表和哈希表,链表保证了元素的顺序与存储顺序一致,哈希表保证了元素的唯一性,线程不安全,效率高。

3.2.3 TreeSet(常用)

底层数据结构是二叉树,元素有序且唯一,唯一性同样需要重写hashCode和equals()方法,二叉树结构保证了元素的有序性。

3.3 Queue接口

有序集合,存储有序的可重复的元素。

4.Map接口类

键值对(key-value)的集合,键不能重复,值可以重复。
在这里插入图片描述

4.1 HashMap接口

4.2 LinkedHashMap接口

4.3 TreeMap接口

5.总结

在这里插入图片描述

数据结构
ArrayXxx:底层数据结构是数组,查询快,增删慢
LinkedXxx:底层数据结构是链表,查询慢,增删快
HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

参考

Java集合常见面试题总结
菜鸟教程-集合
java集合超详解
java集合对比汇总

给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

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

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

相关文章

【银行测试】第三方支付功能测试点+贷款常问面试题(详细)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、第三方支付功能…

华为快应用中自定义Slider效果

文章目录 一、前言二、实现代码三、参考链接 一、前言 在华为快应用中官方提供了<slider>控件&#xff0c;但是这个控件的限制比较多&#xff0c;比如滑块无法自定义&#xff0c;所以这里进行下自定义&#xff0c;自己修改样式。 二、实现代码 整体效果如下: 源码如下…

SL6015B降压恒流60V耐压1.5A高辉调光LED芯片 电路简单 元器件少

SL6015B是一款专为LED照明应用设计的降压恒流芯片&#xff0c;具有60V的耐压能力&#xff0c;最大输出电流可达1.5A。它采用高辉调光方式&#xff0c;通过改变输入电压或电流来调节LED的亮度。此外&#xff0c;SL6015B还具有电路简单和元器件数量少的特点&#xff0c;使其成为一…

QT-在ui界面中给QWidget增加Layout布局的两种方法

QT-在ui界面中给QWidget增加Layout布局的两种方法 方式一 在UI界面&#xff0c;用拖拽的方式加入Layout方式二 用notepad软件打开.ui文件&#xff0c;手动加入Layout代码 目标&#xff1a;去除右下角红标&#xff0c;给tab标签增加Layout属性。 方式一 在UI界面&#xff0c;用…

leetcode:前序遍历

题目描述 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目分析 这道题的难点在于&#xff0c;前序遍历一遍之后需要将数值存在数组里&#xff0c;returnsize就是数组的大小 所以我们先构建一个函数来计算节点的个数 然后我…

中国AI大模型,应该如何商业化?

虽然大模型商业化的路径较为清晰&#xff0c;目前国内厂商也都在积极探索&#xff0c;但大模型的商业化之路&#xff0c;不能仅限于商业模式的探索尝试&#xff0c;更在于解决大模型发展的底层问题。 作者|斗斗 编辑|皮爷 出品|产业家 如今&#xff0c;大模型的商业化问题再…

深度观察|近视防控乱象下,角膜塑形镜撬动百亿市场的背后…

前不久&#xff0c;“晒眼皮”莫名上了热搜。顾名思义&#xff0c;就是在太阳底下闭眼&#xff0c;让眼皮享受日光浴。 不少近视患者相信&#xff0c;这种做法可以延缓近视&#xff0c;甚至可以让近视度数“清零”。毫无疑问&#xff0c;这是一个收割智商税的做法&#xff0c;…

敏捷开发迭代缺陷统计的重要性

在敏捷开发中&#xff0c;迭代缺陷统计具有重要性&#xff0c;对团队和项目具有多方面的影响&#xff1a; 早期发现和解决问题&#xff1a; 迭代缺陷统计允许团队及时识别和定位在迭代中出现的问题。这有助于早期解决问题&#xff0c;避免问题扩大化&#xff0c;并最大程度地减…

Oracle连接错误:ORA-28040:没有匹配的验证协议

一、产生原因&#xff1a;oci动态库版本太低&#xff0c;无法连接高版本的数据库 二、解决办法 1、下载高版本的oci库 https://www.oracle.com/database/technologies/instant-client/winx64-64- downloads.html 2、解压并复制oci动态库 3、粘贴到相应的目录

中国移动联合玻色量子打造“人人可用的量子计算”——恒山光量子算力平台公测上线

2023年12月1日&#xff0c;中国移动云能力中心&#xff08;简称“移动云”&#xff09;联合北京玻色量子科技有限公司&#xff08;简称“玻色量子”&#xff09;共同打造的“五岳量子计算云平台——恒山光量子算力平台”在苏州正式发布。这是玻色量子继2023年5月16日成功发布自…

常见的关于vcruntime140.dll丢失的解决方法,找不到vcruntime140.dll丢失的问题

vcruntime140.dll文件是Microsoft Visual C Redistributable for Visual Studio 2015的一部分&#xff0c;它是运行使用Visual Studio 2015 开发的应用程序所必需的。如果你在尝试打开某些游戏或应用程序时遇到“vcruntime140.dll丢失”或“找不到vcruntime140.dll”这样的错误…

计算机网络入侵检测技术研究

摘 要 随着网络技术的发展&#xff0c;全球信息化的步伐越来越快&#xff0c;网络信息系统己成为一个单位、一个部门、一个行业&#xff0c;甚至成为一个关乎国家国计民生的基础设施&#xff0c;团此&#xff0c;网络安全就成为国防安全的重要组成部分&#xff0c;入侵检测技术…

论文解读:EfficientViT-提高吞吐量

摘要 要解决的问题 Vision transformers have shown great success due to their high model capabilities. However, their remarkable performance is accompanied by heavy computation costs, which makes them unsuitable for real-time applications. vit计算开销大&a…

热点新闻 | 许战海:零食行业的革新之道

2023年11月29日&#xff0c;华糖万商大会在南京国际会展中心隆重举行。著名战略定位咨询专家许战海受邀出席&#xff0c;在“量贩零食产业年度盛典”上发表了主题为《如何通过竞争战略布局年度规划》的精彩演讲&#xff0c;吸引了众多业界关注。 演讲中&#xff0c;许战海老师指…

网页开发 CSS

目录 CSS 概述 CSS 引入方式 CSS 选择器 基本选择器 组合选择器 伪类选择器 样式继承 选择器优先级 CSS 属性操作 文本属性 背景属性 边框属性 列表属性 dispaly属性 盒子模型&#xff08;重点&#xff09; float属性&#xff08;重点&#xff09; CSS 概述 C…

RPG项目01_UI面板Game

基于“RPG项目01_技能释放”&#xff0c;将UI包导入Unity场景中&#xff0c; 将图片放置 拖拽 取消勾选&#xff08;隐藏攻击切片&#xff09; 对技能添加蒙版 调节父子物体大小一致 将子类蒙版复制 执行5次 运行即可看到技能使用完的冷却条 在Scripts下创建UI文件夹 写代码&am…

4、类和对象、this指针、常对象和常函数

类和对象 类的一般形式 访问控制限定符 public 公有成员&#xff0c;谁都可以访问protected 保护成员&#xff0c;只有类自己和子类可以访问private 私有成员&#xff0c;只有类自己可以访问 类和结构的访问控制限定符区别 类的缺省访问控制限定为私有(private)结构的缺省访…

Java基础数据类型

Java有八种基础的数据类型&#xff0c;它们被分为两个主要的类别&#xff1a;原始类型和引用类型。原始类型又被分为四类&#xff1a;整型、浮点型、字符型和布尔型。 整型&#xff08;Integral Types&#xff09;&#xff1a; 这些类型用于存储整数。它们包括&#xff1a; ○…

最高性能、最低错误率!一年沉寂,IBM王者归来

周一&#xff0c;国际商业机器公司&#xff08;IBM&#xff09;发布了首台量子计算机&#xff0c;它拥有1000多个量子比特&#xff08;相当于普通计算机中的数字比特&#xff09;。但该公司表示&#xff0c;现在它将转变思路&#xff0c;专注于提高机器的抗错能力&#xff0c;而…

羊大师提问鲜羊奶冷冻还好喝吗?

羊大师提问鲜羊奶冷冻还好喝吗&#xff1f; 在当今追求健康、养生的时代背景下&#xff0c;各种新奇的饮食趋势层出不穷。鲜羊奶冷冻成为了备受追捧的美食新潮流。不仅具备饮食的功能&#xff0c;更是一种享受。本文小编羊大师将从鲜羊奶冷冻的制作工艺、营养价值和市场前景等…