江苏伟风智能 Java 实习一面
江苏伟风智能 Java 实习一面
1.说一下ArrayList和LinkedList的区别
ArrayList
- 优点:ArrayList 是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询 操作效率会比较高(在内存里是连着放的)。
- 缺点:因为地址连续,ArrayList 要移动数据,所以插入和删除操作效率比较低。
LinkedList
- 优点:LinkedList 基于链表的数据结构,地址是任意的,所以在开辟内存空间的时候不需要等 一个连续的地址。对于新增和删除操作,LinkedList 比较占优势。LinkedList 适用于要头尾操 作或插入指定位置的场景。
- 缺点:因为 LinkedList 要移动指针,所以查询操作性能比较低。
适用场景分析
- 当需要对数据进行对随机访问的时候,选用 ArrayList。
- 当需要对数据进行多次增加删除修改时,采用 LinkedList。
如果容量固定,并且只会添加到尾部,不会引起扩容,优先采用 ArrayList。 当然,绝大数业务的场景下,使用 ArrayList 就够了,但需要注意避免 ArrayList 的扩容,以及非顺序的插入。
2.ArrayList和LinkedList插入数据效率谁高
👆
3.LinkedList的元素查询逻辑
get(int index): 逻辑: 从链表的头部开始遍历,计数直到达到指定的index位置。由于LinkedList内部维护了对头节点和尾节点的引用,以及节点间相
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
大学四年面经(学院本) 文章被收录于专栏
大学全部面经从大一到大四,从实习、秋招、春招等等,各种岗位,中小厂,乃至大厂面经! 公粽号:程序员落叶,里面分享全部文章详情。