ArrayList和LinkedList优缺点

凉白开 .NET C#ArrayList和LinkedList优缺点已关闭评论17,1402字数 902阅读3分0秒阅读模式

java编程中我们用最多的几个类可以就是String,ArrayList,HashMap了.特别是ArrayList我们几乎无人不知,甚至有乱用的嫌疑了我们来看看ArrayList和LinkedList的区别.故名思意ArrayList是数组表,LinkedList是链接表.ArrayList的所有数据是在同一个地址上,而LinkedList的每个数据都拥有自己的地址.

我们来比较一下常用的数据的插入,数据的删除,数据的更新,数据查询.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

数据插入 :比如在i节点插入一个新数据文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   ArrayList:循环到i节点,插入一个新数据,然后把i节点后面的所有的数据的index加1. ->操作多文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   LinkedList:循环到i节点,把前一个节点的后续链接到新数据,然后把新数据链接到后一个数据就可以了.  ->操作少文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   结论:平均效率LinkedList要好.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

数据删除 :比如删除i节点数据文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   ArrayList:循环到i节点,然后把i节点后面的所有的数据的index减1. ->操作多文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   LinkedList:循环到i节点,把前一个节点的后续链接到i节点的后一个数据就可以了.  ->操作少文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   结论:平均效率LinkedList要好.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

数据查询 :比如查询i节点数据文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   ArrayList:循环到i节点. ->操作少文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   LinkedList:循环到i节点.  ->操作少,但由于每个数据的地址不一样,查询比如 ArrayList慢.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   结论:平均效率 ArrayList要好.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

数据更新 :比如更新i节点数据文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   ArrayList:循环到i节点,把数据更新. ->操作少文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   LinkedList:循环到i节点,把前数据更新.  ->操作少,但由于查询速度没有 ArrayList好,所有效率没有 ArrayList好.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

   结论:平均效率ArrayList要好.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

这样我们就可以看到各有优点.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

如果查询操作较多ArrayList的效果更好.如果删除,插入较多LinkedList的效果较好.具体怎么用还看具体的需求.文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

本文转自:http://blog.csdn.net/hantiannan/article/details/5447567文章源自运维生存时间-https://www.ttlsa.com/csharp/arraylist-and-linkedlist/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
凉白开
  • 本文由 发表于 02/05/2014 01:01:52
  • 转载请务必保留本文链接:https://www.ttlsa.com/csharp/arraylist-and-linkedlist/