ArrayList与LinkedList都实现了List接口。
不同点如下:
ArrayList集合数据存储的结构是数组结构,所以元素增删慢、查询快。
LinkedList集合数据存储的结构是链表结构,所以方便元素插入、添加和删除。
ArrayList是基于索引的数据结构,它使用索引在数组中搜索和读取数据的速度是很快的。但是ArrayList删除数据的速度却很慢,因为删除操作需要重新排列集合中的所有元素,需要重新排列集合的索引。
LinkedList由于数据结构是链表结构,所以它插入、添加或者删除的操作就不会像ArrayList那样重新排列集合中的元素。
LinkedList需要更多的内存,因为LinkedList的每个节点中存储的是数据和前后节点的索引,一个指向前一个元素,一个指向后一个元素 (如果看不懂这个,可以去网上普及一下数据结构中的链表结构)。
以下情况适用于LinkedList集合:
反之则用ArrayList集合。
它们的用法详解:Java(集合③)
附上关系图