一、ArrayList相关知识
- ArrayList是Java集合常用的数据结构之一,继承自AbstractList,实现了List,RandomAccess、Cloneable、Serializable等一系列接口,支持快速访问,复制和序列化。底层是基于数组实现容量大小动态变化,允许null值存在。是序的。
- ArrayList内部是由数组是实现的,而LinkList内部是由循环双向链表实现的。
所以ArrayList在进行查找操作时,速度要优于由链表实现的LinkList,
但是在进行删除添加操作时,LinkList速度要优于ArrayList
所以当进行查找操作更多时,使用ArrayList,而如果进行插入和删除操作更多时,使用LinkList。 - ArrayList和LinkList都是线程不安全的
二、LinkList相关知识
- LinkList内部是由循环双向链表实现的,LinkedList 没有实现 RandomAccess 接口,链表支持顺序访问, 查询速度慢, 增删元素快
- LinkList需要更多的内存空间,因为它除了要存储数据之外,还需要存储该节点的前后节点信息,而ArrayList索引处就是存的数据。