当有人问你ArrayList与LinkedList的区别时, 一般的回答都是:
ArrayList是数组结构, 插入和查找比较快; LinkedList是双向链表结构, 删除比较快;
但这样的回答, 只能算是及格..., 需要细化更多点再回答才行.
1.ArrayList是数组结构, 插入效率很高;
但确定好初始容量之后, 性能会更高....修改节点时,时间复杂度是O(1), 性能非常高.
3.ArrayList删除节点时, 会涉及到后续元素的迁移, 存在数组拷贝操作, 性能也就很差, 时间复杂度看起来是O(1), 其实是O(N)....注意: LinkedList这里的O(N)会比ArrayList中O(N)性能慢, 是因为LinkedList遍历时需要到内存中查找, 而ArrayList中的数据会有一部分或者全部进入CPU缓存中,...遍历时, ArrayList使用索引遍历; LinkedList使用迭代器遍历;