【Java集合类面试二十六】、介绍一下ArrayList的数据结构?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。

面试官:介绍一下ArrayList的数据结构?

参考答案:

ArrayList的底层是用数组来实现的,默认第一次插入元素时创建大小为10的数组,超出限制时会增加50%的容量,并且数据以 System.arraycopy() 复制到新的数组,因此最好能给出数组大小的预估值。

按数组下标访问元素的性能很高,这是数组的基本优势。直接在数组末尾加入元素的性能也高,但如果按下标插入、删除元素,则要用 System.arraycopy() 来移动部分受影响的元素,性能就变差了,这是基本劣势。

相关推荐
杨杨杨大侠7 分钟前
案例03-附件E-部署运维
java·docker·github
杨杨杨大侠13 分钟前
案例03-附件B-映射器实现
java·开源·github
杨杨杨大侠16 分钟前
案例03-附件A-订单实体设计
java·开源·github
杨杨杨大侠18 分钟前
案例03-附件C-性能优化
java·开源·github
杨杨杨大侠21 分钟前
案例03-附件D-监控系统
java·开源·github
uhakadotcom1 小时前
什么是OpenTelemetry?
后端·面试·github
没有鸡汤吃不下饭1 小时前
前端【数据类型】 No.1 Javascript的数据类型与区别
前端·javascript·面试
知其然亦知其所以然1 小时前
MySQL 社招必考题:如何优化特定类型的查询语句?
后端·mysql·面试
汤姆Tom1 小时前
从零到精通:现代原子化 CSS 工具链完全攻略 | PostCSS × UnoCSS × TailwindCSS 深度实战
前端·css·面试
华仔啊4 小时前
主线程存了用户信息,子线程居然拿不到?ThreadLocal 背锅
java·后端