ArrayList、LinkedList、Vector 集合对比:
结构 | 安全 | 效率 | 扩容 | |
ArrayList | 数组 | 不安全 | 增删(慢)查询(快) | 1.5倍 |
LinkedList | 链表(双向链表) | 不安全 | 增删(快)查询(慢) | 无 |
Vector | 数组 | 安全 | synchronized(慢) | 2倍 |
Vector 与 ArrayList 类似, Vector 类的方法都添加了synchronized。所以它在多线程下是安全的, 但操作效率相比而言就比较慢。
ArrayList 与 LinkedList:LinkedList 插入元素时比较多样性 , 如插入到首部或末尾、清除或查询首部末尾(Deque<E>) .LinkedList 查询不像ArrayList可以直接根据下标找到元素它而是遍历查找到匹配的元素。这就是查询慢的原因。但是增加和删除就比较快,它不要像ArrayList每次都去判断是否扩容。如果需要扩容,数组结构的数组容量不足就需要复制当前数组还要生成新的长数组所以效率比较低...