首页 > 技术文章 > ArrayList和LinkedList的区别

ierha 2018-03-15 15:29 原文

1.ArrayList

  ArrayList<E> extends AbstractList<E> 底层实现是个动态数组

2.LinkedList

  class LinkedList<E> extends AbstractSequentialList<E> 是个双向链表

区别:

get和set:ArrayList基于动态数组实现,get和set元素速度快,而LinkedList基于双向链表,每次get都要先通过for循环获取元素的index,再返回具体的值,因此速度慢

add和remove:ArrayList基于动态数组,每次add或者remove都要移动数组中的数据,重新排列数组下标,因此较慢,而LinkedList基于双向链表,每次add或者remove只需要改变指针的指向即可,因此速度快。

 

推荐阅读