ArrayList和LinkedList的区别

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只需要改变指针的指向即可,因此速度快。

 

posted @ 2018-03-15 15:29  AK-1958  阅读(259)  评论(0编辑  收藏  举报