java面试题网

普通会员

118

帖子

12

回复

165

积分

楼主
发表于 2018-05-25 14:19:33 | 查看: 1610| 回复: 1

1、ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 (LinkedList是双向链表,有next也有previous)

2、对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 

3、对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 



普通会员

265

帖子

9

回复

179

积分
沙发
发表于 2018-11-01 16:55:32

ArrayList和LinkedList 有以下的不同点:

  • ArrayList是基于索引的数据接口,它的底层是数组。它可以以O(1)时间复杂度对元素进行随机访问。而 LinkedList是以链表的形式存储它的数据,每一个元素都和它的前一个和后一个元素链接在一起,在这种情况下,查找某个元素的时间复杂度是O(n)。

  • 相对于ArrayList,LinkedList的插入、添加、删除操作速度更快,因为当元素被添加到集合任意位置的时候,不需要像数组那样重新计算大小或者是更新索引。

  • LinkedList比ArrayList更占内存,因为LinkedList为每一个节点存储了两个引用,一个指向前一个元素,一个指向下一个元素。

您需要登录后才可以回帖 登录 | 立即注册

java面试题网无聊看看网与java建站系统提供技术支持V2.1 网站地图 © 2016-2018