1 2 3 4 5 6 7 8
| ArrayList和linkedlist的区别: 1.ArrayList底层实现就是数组,且ArrayList实现了RandomAccess,表示它能快速随机访问存储的元素,通过下标index访问;特点:查询速度快,增删元素慢 2.LinkedList底层实现是双向链表,LinkedList没有实现RandomAccess接口,所以使用for循环遍历没有使用iterator的效率高;特点:查询速度慢,增删元素快 3.ArrayList主要控件开销在于需要在List列表预留一定空间;而LinkList主要控件开销在于需要存储结点信息以及结点指针信息 4.从利用效率来看,ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创建,然后添加数据,通过调用下标进行使用;而LinkedList自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用 5.使用get和set方法,ArrayList比LinkedList的效率更高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后依次查找 6.ArrayList可以以O(1)时间复杂度对元素进行随机访问;而LinkedList查找某个元素的时间复杂度是O(n) 7.LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素
|