循环链表以即使用场景,arraylist 和linkedlist(数据结构上)使用区别
时间: 2023-11-12 13:52:38 浏览: 76
关于arraylist和linkedList的区别
循环链表适用于需要循环访问链表的场景,例如实现一个环形队列或者循环播放的音乐列表。
ArrayList和LinkedList都是常用的线性数据结构,但它们之间有一些不同:
1. 底层实现不同:ArrayList底层是使用数组实现的,LinkedList底层是使用链表实现的。
2. 查询效率不同:ArrayList查询元素的时间复杂度为O(1),而LinkedList需要遍历链表才能找到对应元素,时间复杂度为O(n)。
3. 插入删除效率不同:ArrayList插入删除元素的时间复杂度为O(n),因为需要移动其他元素,而LinkedList插入删除元素的时间复杂度为O(1),只需要修改指针即可。
4. 空间占用不同:ArrayList需要预留一定空间,而LinkedList不需要,因为链表节点是动态分配的。
5. 迭代器实现不同:ArrayList的迭代器是基于索引实现的,而LinkedList的迭代器是基于指针实现的。
阅读全文