ArrayList与LinkedList源码解析及应用场景:
数组的特点:
ArrayList 源码解析:
顺序表的应用的优缺点:
优点: 尾插效率高,支持随机访问。
缺点: 中间插入或者删除效率低。 应用: ArrayList
二、线性表之链表:
定义:线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的 数据元素,这组存储单元可以是连续的,也可以是不连续的
单链表的操作:
类继承图:
源码解析:
三、 双链表相关
双链表:是什么?
双链表的操作:
双链表源码解析
双链表知识总结与应用场景:
对重点List 数据结构总结:
简要解析:
1、List 是一个接口,它继承于Collection的接口。它代表着有序的队列
2、AbstractList 是一个抽象类,它继承于AbstractCollection AbstractList实现List接口中除size()、get(int location)之外的函数。
3、AbstractSequentialList 是一个抽象类,它继承于AbstractList.AbstractSequentialList 实现了“链表中,根据index索引值操作链表的全部函数”
4、 ArrayList, LinkedList, Vector, Stack 是List的4个实现类。
常见面试:
ArrayList的大小是如何自动增加的?
什么情况下你会使用ArrayList?
在索引中ArrayList的增加或者删除某个对象的运行过程?效率很低吗?解释一下为什么?
ArrayList如何顺序删除节点 arrayList的遍历方法
手写一个单链表,并且实现单链表元素的逆置,(a0, a1,a2,a3,..an)-> (an,an-1,… a1, a0),算法的空间复杂度和时间复杂度经可能低。
手写双向链表, 实现增删改查,同时对比自己的LinkList 和源码Linkedlist的异同点。
对比源码Arraylist 和LinkedList 的优缺点。