ArrayList和LinkedList有什么区别?
|
ArrayList |
LinkedList |
底层数据结构 |
使用数组实现 |
使用链表实现 |
插入和删除操作 |
需要移动其他元素,时间复杂度为O(n) |
只需要修改指针的指向,时间复杂度为O(1) |
随机访问 |
根据索引直接访问元素,时间复杂度为O(1) |
需要遍历链表找到目标位置进行访问,时间复杂度为O(n) |
适用场景 |
频繁访问和随机访问,插入和删除较少的场景 |
频繁插入和删除,随机访问需求较少的场景 |