ArrayList和LinkedList的异同点
对ArrayList类的分析:ArrayList
对LinkedList类的分析:LinkedList
通过对ArrayList类和LinkedList类的分析,可以总结出ArrayList和LinkedList的异同点如下:
相同点:
数据特征相同:
类中数据可重复,插入有序,可以有多个null值
继承关系相同:
均直接或间接继承了AbstractList类,并实现了List接口
不同点:
底层数据结构不同:
ArrayList底层数据结构是数组,LinkedList底层数据结构是双向链表
实现方法不同:
因为LinkedList继承了Deque接口,所以LinkedList还实现了Deque接口的特有方法。
操作效率不同:
ArrayList查询、修改的效率高,增加、删除的效率较低
LinkedList增加、删除的效率高,查询、修改的效率较低
应用场景不同:
ArrayList适用于查询量大,增删频率较低的场景
LinkedList适用于增删量较大,查询频率较低的场景
一般默认遍历方式不同:
ArrayList一般用for循环遍历
LinkedList一般用迭代器遍历
因为ArrayList用for循环遍历比iterator迭代器遍历快,LinkedList用iterator迭代器遍历比for循环遍历快