ArrayList和LinkedList优缺点

  • A+
所属分类:.NET C#

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的效果较好.具体怎么用还看具体的需求.

本文转自:http://www.bhlaab.com/811/hantiannan/article/details/5447567

微信公众号
扫一扫关注运维生存时间公众号,时时彩计划软件公式:获取最新技术文章~

发表评论