arraylist和linkedlist的区别
arraylist和linkedlist的区别:
一、查找元素方法不同:
1、arraylist可以直接通过数组下标找到元素。
2、linkedlist要通过移动指针遍历每个元素,直到找到需要的元素为止。arraylist查找元素的速吵激仿度比linkedlist快。
二、空间消耗。
1、arraylist的空间浪费主要体现在在list结尾预留了一定的容量空间。
2、而linkedlist的空间浪费则体现在它的每一个元素都要消耗铅余一定的空间。
三、原理不同。
1、arraylist是基于动态数组实现的非线程安全集合。
2、linkedlist是基于链表实现的非线程安全集合。
四、删除元素。
1、arraylist在新增和删除元素时升纤,可能扩容和复制数组。
2、而linkedlist实例化对象只需要修改指针即可。
arraylist和linkedlist的区别如下:
1、ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2、对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
3、对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
什么场景下更适宜使用 LinkedList而不用ArrayList
你的应用不会随机访问数据。因为如果你需要LinkedList中的第n个元素的时候,你需要从第一个元素顺序数到第n个数据,然后读取数据。
你的应用更多的插入和删除元素,脊含销更少的读取数据。樱游因为插入和删除元素不涉及重排数据,所以它要比ArrayList要快。
换句话说,ArrayList的实现用的是数组老搭,LinkedList是基于链表,ArrayList适合查找,LinkedList适合增删。