您的位置:首页 > 其它

ArrayList和LinkedList的各自优点

2010-04-03 14:00 190 查看
java编程中我们用最多的几个类可以就是String,ArrayList,HashMap了.

特别是ArrayList我们几乎无人不知,甚至有乱用的嫌疑了.

我们来看看ArrayList和LinkedList的区别.

故名思意ArrayList是数组表,LinkedList是链接表.

ArrayList的所有数据是在同一个地址上,而LinkedList的每个数据都拥有自己的地址.

我们来比较一下常用的数据的插入,数据的删除,数据的更新,数据查询.

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

ArrayList:循环到i节点,插入一个新数据,然后把i节点后面的所有的数据的index加1. ->操作多

LinkedList:循环到i节点,把前一个节点的后续链接到新数据,然后把新数据链接到后一个数据就可以了. ->操作少

结论:平均效率LinkedList要好.

数据删除
:比如删除i节点数据

ArrayList:循环到i节点,然后把i节点后面的所有的数据的index减1. ->操作多

LinkedList:循环到i节点,把前一个节点的后续链接到i节点的后一个数据就可以了.
->操作少

结论:平均效率LinkedList要好.

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

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

LinkedList:循环到i节点.
->操作少,但由于每个数据的地址不一样,查询比如
ArrayList慢.

结论:平均效率
ArrayList要好.


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

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

LinkedList:循环到i节点,把前数据更新.
->操作少,但由于查询速度没有
ArrayList好,所有效率没有
ArrayList好.

结论:平均效率ArrayList要好.

这样我们就可以看到各有优点.

如果查询操作较多ArrayList的效果更好.如果删除,插入较多LinkedList的效果较好.具体怎么用还看具体的需求.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: