ArrayList和LinkedList都实现了List接口:
相同点:存储数据的特点相同,都是有序的可重复的数据
不同点:
1.ArrayList的底层是数组,LinkedList底层是双向链表(每一个元素都和它前一个元素和后一个元素链接在一起)
2.ArrayList查找和读取数据速度快(基于数组索引的方式查找),但删除数据的开销大(需要重新排列数组中的所有数据)
3.LinkedList插入和删除数据快,不需要像ArrayList那样改变数组大小,而是直接插入,只要把前一个结点的next和后一个节点的pre指向插入节点,插入节点的pre和next分别指向前一个节点和后一个节点就行了。
总结:什么场景下适宜使用LinkedList,而不用ArrayList
如果需要的是更多的插入和删除数据,更少的读取数据,则使用LinkedList要快很多。(LinkedList插入和删除元素不涉及重排数据)