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

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

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

参考答案:

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

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

相关推荐
何时梦醒2 分钟前
TypeScript 类型系统核心:type 与 interface 全方位深度对比(附实战案例)
前端·面试·typescript
wabs6665 分钟前
关于哈希表【力扣15.三数之和的思考】
数据结构·算法·leetcode·散列表·哈希表·三数之和
书源6 分钟前
AI 能写代码之后,前端工程师的价值在哪里?
前端·面试·程序员
SL_staff26 分钟前
JVS数字底座实践:如何复用企业文档能力快速构建知识类应用
java·数据库·程序员
sugar__salt28 分钟前
MyBatis ③动态 SQL 完全指南 —— 从条件拼接到批量操作
java·sql·mybatis
吃饱了得干活40 分钟前
Java并发安全:看这一篇就懂了!
java·后端·面试
早点睡97540 分钟前
向量检索原理入门:从 ANN 到 HNSW
后端·面试
前端双越老师42 分钟前
前端学习 Java 其实很容易:TS 和 Java 语法的 N 个相同点
java·全栈
众人皆醒我独醉42 分钟前
Embedding:把词变成向量——AI 理解语义的唯一方式
人工智能·面试·llm
疯狂打码的少年1 小时前
【数据结构】队列的应用:循环队列
数据结构·笔记·算法