一、题干
请你说说ArrayList和LinkedList的区别
二、解题思路
得分点 :数据结构、访问效率
标准回答 :
- ArrayList的实现是基于数组,LinkedList的实现是基于双向链表。
- 对于随机访问 ArrayList要优于LinkedList,ArrayList可以 根据下标以O(1)时间复杂度对元素进行随机访问,而LinkedList的每一个元素都依靠地址指针和它后一个元素连接在一起,查找某个元素的时间复杂度是O(N)。
- 对于插入和删除操作,LinkedList要优于ArrayList,因为当元素被添加到LinkedList任意位置的时候,只需要改变指针的指向,不需要像ArrayList那样重新计算大小或者是更新索引。
- LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。