ArrayList 和 LinkedList 各包含 200 个元素,在第 100 个位置各插入一个元素,哪个更快?
考察说明
考察对 ArrayList 与 LinkedList 底层数据结构及插入操作时间复杂度的理解
回答思路
- 能说出 ArrayList 使用数组存储,指定位置插入需移动后续元素,时间复杂度 O(n)
- 能说出 LinkedList 使用双向链表,指定位置插入需从头或尾遍历定位,复杂度 O(n)
- 结合第 100 个位置的具体情况,分析两者定位和移动成本差异
- 指出实际性能受 JVM 缓存、内存布局和节点分配等因素影响,不能绝对化