ArrayList集合的特点为什么是增删慢、查询快?

一、前言:

我们都知道ArrayList集合底层是数组结构,因为数组中每个元素是有索引存在,所以查询效率高,增删效率低。那为什么数组结构有索引查询效率就会高呢?而且ArrayList集合长度是可变的,数组一旦创建长度就不可变,那ArrayList集合底层是数组结构,它的底层原理又是如何执行的?

下面我们就带着这两个问题,通过分析ArrayList源码,了解其中的原理。

二、ArrayList集合增删慢:1、我们先来看一下ArrayList的底层源码
ArrayList集合的特点为什么是增删慢、查询快?
2、自动扩容原理

(1)ArrayList集合底层是数组结构,新增元素时先创建长度为0的Object数组。

(2)添加元素时,判断如果原数组中没有元素,则再创建长度为10的新数组。

(3)添加元素时,判断如果原数组中元素存满时,则再创建长度为原数组长度*1.5倍的新数组。即oldCapacity + (oldCapacity >> 1);最后再将老数组元素拷贝到新数组中。

3、结论

ArrayList在添加元素时有可能会导致集合自动扩容,ArrayList底层是数组结构,但数组长度是不可变的不支持动态扩容,此时ArrayList集合底层会创建出一个新的数组,长度为老数组的1.5倍,并将老数组的元素复制到新数组中。

ArrayList在删除元素时底层是将删除索引位置起到最后索引位置结束中所有的元素,一一向前复制一个索引位置,再将最后索引位置元素设置为null。

所以ArrayList在进行增删操作时,效率会很慢。

三、ArrayList集合查询快:1、我们先来看一下ArrayList的底层源码
ArrayList集合的特点为什么是增删慢、查询快?
2、结论

ArrayList在查询元素时底层是通过访问数组元素方式进行查询。

而数组只能存储同一类型的元素。并且声明一个数组时,会在内存中申请一块连续相邻的内存空间。当要通过索引访问数组元素时,可通过数组地址值和偏移量,直接计算出要查找元素的内存地址,所以数组支持通过索引直接访问元素,效率非常高。

举例分析:

ArrayList集合的特点为什么是增删慢、查询快?
四、总结:

通过上述分析,我们发现ArrayList集合底层是Object[]数组,所以ArrayList具有数组的查询速度快的优点以及增删速度慢的缺点。

免责声明:文章内容来自互联网,本站仅作为分享,不对其真实性负责,如有侵权等情况,请与本站联系删除。
转载请注明出处:ArrayList集合的特点为什么是增删慢、查询快? https://www.dachanpin.com/a/cyfx/11380.html

(0)
上一篇 2023-05-12 03:13:14
下一篇 2023-05-12 03:14:16

相关推荐

  • 优秀毕业生挂7门 这个优秀是怎么评上的?

        在政策推出之前,有一个学生,他因为创业,7门课不及格,到最后学校研究给他如期毕业。     你觉得呢?     近日,某高职院校创业学院副院长的一段讲话视频在微博上热传。     他还说,“学…

    创业分享 2023-05-16
    118
  • 亿超眼镜加盟项目推出青年创业帮扶计划

    重磅 百万创业基金圆您BOSS梦 ——亿超启动优秀眼镜青年创业帮扶计划全国海选活动 有才您就来 您想创业做BOSS吗? 您正在为自有才而又缺乏创业资本而苦闷吗? 您在为有才有钱却缺乏引导和帮助而徘徊不敢创业吗? 现在一切都不是问题了, 亿超设置百万创业基金园您BOSS梦 启动亿超优秀眼镜青年创业帮扶计划 有才您就来! 为了给广大有志于创业发展的优秀眼镜青年提…

    创业分享 2023-06-03
    85
  • SaaS创业公司如何降低客户流失率? | 双语

    Groove decided to send targeted emails to customers who spent less than two minutes in their initial session, and to those whose usage of the app was declining. Both of these campa…

    创业分享 2023-05-28
    97
  • 南通职业大学举办感动职大人物事迹报告会暨干事创业、使命担当经

    中国高校之窗 会上还传达学习了全国、全省和全市教育大会精神。(通讯员:崔超 贡勋 施辉) 中国高校之窗 会上,生动介绍了被表彰为第二届“感动南通职大人物”的机械工程学院郭光宜老师、电子信息工程学院刘建峰老师、后勤处偶金华同志、海门学院辅导员张华老师和马克思主义学院朱建老师坚守初心使命、教书育人、服务育人的感人事迹。机械工程学院和学生工作处作为学院部门代表,交…

    创业分享 2023-05-12
    176
  • 环球捕手助力高校创业 第四届福建省(厦门)大学生电子商务论坛

    12月3日,“第四届福建省(厦门)大学生电子商务论坛”在厦门理工学院举办,该论坛围绕大”学生创业“、”校企合作“两大议题展开。环球捕手作为电商创业平台代表,表达了对大学生创业的全力支持。 本次论坛主办方,厦门理工学院经管学院院长陈占葵在致辞中表示,此次论坛响应了李克强总理“大众创业、万众创新”政策,为厦门高校与高校、高校与企业间的相互交流、合作提供了平台,5…

    创业分享 2023-05-20
    87

发表回复

登录后才能评论

联系我们

在线咨询: QQ交谈

邮件:362039258@qq.com

工作时间:周一至周五,9:30-16:30,节假日休息