ArrayList实现了List接口,底层使用的是动态数组,之所以称为动态数组,是因为Arraylist在数组元素超过其容量大,Arraylist可以进行扩容(针对JDK1.8 数组扩容后的容量是扩容前的1.5倍);
LinkedList底层使用的是链表
动态数组查询特定元素比较快,插入和删除不如链表快
如果一直在尾部添加元素的话,ArrayList的效率会更高一些,LinkedList每次增加会new一个Node对象来保存新增加的元素,当数据量比较小的时候时间不明显,数据量很大的时候new一个Node的时间会大于动态数组扩容的时间,这样ArrayList的效率就搞了