ArrayList VS LinkedList

java编程中咱们用最多的几个类能够就是String,ArrayList,HashMap了.特别是ArrayList咱们几乎无人不知,甚至有乱用的嫌疑了咱们来看看ArrayList和LinkedList的区别.故名思意ArrayList是数组表,LinkedList是连接表.ArrayList的全部数据是在同一个地址上,而LinkedList的每一个数据都拥有本身的地址.java

咱们来比较一下经常使用的数据的插入,数据的删除,数据的更新,数据查询.编程

数据插入 :好比在i节点插入一个新数据数组

   ArrayList:循环到i节点,插入一个新数据,而后把i节点后面的全部的数据的index加1. ->操做多spa

   LinkedList:循环到i节点,把前一个节点的后续连接到新数据,而后把新数据连接到后一个数据就能够了.  ->操做少orm

   结论:平均效率LinkedList要好.ci

数据删除 :好比删除i节点数据it

   ArrayList:循环到i节点,而后把i节点后面的全部的数据的index减1. ->操做多效率

   LinkedList:循环到i节点,把前一个节点的后续连接到i节点的后一个数据就能够了.  ->操做少List

   结论:平均效率LinkedList要好.循环

数据查询 :好比查询i节点数据

   ArrayList:循环到i节点. ->操做少

   LinkedList:循环到i节点.  ->操做少,但因为每一个数据的地址不同,查询好比 ArrayList慢.

   结论:平均效率 ArrayList要好.

数据更新 :好比更新i节点数据

   ArrayList:循环到i节点,把数据更新. ->操做少

   LinkedList:循环到i节点,把前数据更新.  ->操做少,但因为查询速度没有 ArrayList好,全部效率没有 ArrayList好.

   结论:平均效率ArrayList要好.

这样咱们就能够看到各有优势.

若是查询操做较多ArrayList的效果更好.若是删除,插入较多LinkedList的效果较好.具体怎么用还看具体的需求.

相关文章
相关标签/搜索