ArrayList和LinkedList比较

来源:互联网 发布:淘宝信用 编辑:程序博客网 时间:2024/05/07 12:47

ArrayList和LinkedList比较

在使用List的时候,经常会出现使用ArrayList和LinkedList,但是到底什么时候使用ArrayList、什么时候使用LinkedList,在这里简单的说明一下。

ArrayList原理

ArrayList实际上对应着数据结构数组(Array)。

ArrayList的数据存储结构是数组。数组的特点是:

  • 占用空间固定,但是当数据不多的时候,浪费空间;
  • 插入数据时,由于空间大小固定,所以不需要给数据分配空间,只要将数据插入即可。但是插入时,后面的数据需要移动空间。速度较慢;
  • 删除数据时,需要将后面的数据移动空间。速度较慢;
  • 获取指定位置数据时,可以用数据的下标直接定位。速度快;

LinkedList原理

LinkedList实际上对应着数据结构中的链表。

LinkedList的数据存储结构是链表。链表的特别是:

  • 占用空间不固定,随数据多少动态分配,不浪费空间;
  • 插入数据时,需要动态分配空间,然后在进行插入操作。后面的数据不需要移动。速度快;
  • 删除数据时,直接删除,并且释放空间。后面的数据不需要移动。速度快;
  • 获取指定位置数据时,无法直接定位,需要一个一个的查找,直到找到对应数据,速度慢;

ArrayList和LinkedList比较

根据上面对ArrayList和LinkedList原理的说明,大致总结如下。

ArrayList和LinkedList特点比较

ArrayList LinkedList 插入操作 速度慢 删除操作 速度慢 获得指定位置数据 速度快

ArrayList和LinkedList用途

如果操作集中在插入、删除,那就用LinkedList吧,这样速度快;

如果操作集中在获取指定位置数据,那就用ArrayList,这样速度快;

注:获取指定位置数据的操作,目前看有查找、遍历等。

注:关于什么是数组(Array),什么是链表。大家看一下数据结构,或者百度一下,自行补脑。呵呵

0 0