栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么时候应该使用列表与LinkedList

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么时候应该使用列表与LinkedList

编辑

请阅读对此答案的评论。人们声称我没有做适当的测试。我同意这不是一个可以接受的答案。在学习的过程中,我做了一些测试,觉得很喜欢分享。

原始答案…

我发现了有趣的结果:

// Temporary class to show the exampleclass Temp{    public decimal A, B, C, D;    public Temp(decimal a, decimal b, decimal c, decimal d)    {        A = a; B = b; C = c; D = d;    }}

链接列表(3.9秒)

        linkedList<Temp> list = new linkedList<Temp>();        for (var i = 0; i < 12345678; i++)        { var a = new Temp(i, i, i, i); list.AddLast(a);        }        decimal sum = 0;        foreach (var item in list) sum += item.A;

清单(2.4秒)

        List<Temp> list = new List<Temp>(); // 2.4 seconds        for (var i = 0; i < 12345678; i++)        { var a = new Temp(i, i, i, i); list.Add(a);        }        decimal sum = 0;        foreach (var item in list) sum += item.A;

即使您仅本质上访问数据也要慢得多! 我说永远不要使用linkedList。




这是另一个执行大量插入操作的比较(我们计划在列表的中间插入一个项目)

链接列表(51秒)

        linkedList<Temp> list = new linkedList<Temp>();        for (var i = 0; i < 123456; i++)        { var a = new Temp(i, i, i, i); list.AddLast(a); var curNode = list.First; for (var k = 0; k < i/2; k++) // In order to insert a node at the middle of the list we need to find it     curNode = curNode.Next; list.AddAfter(curNode, a); // Insert it after        }        decimal sum = 0;        foreach (var item in list) sum += item.A;

清单(7.26秒)

        List<Temp> list = new List<Temp>();        for (var i = 0; i < 123456; i++)        { var a = new Temp(i, i, i, i); list.Insert(i / 2, a);        }        decimal sum = 0;        foreach (var item in list) sum += item.A;

链接列表具有插入位置的引用(.04秒)

        list.AddLast(new Temp(1,1,1,1));        var referenceNode = list.First;        for (var i = 0; i < 123456; i++)        { var a = new Temp(i, i, i, i); list.AddLast(a); list.AddBefore(referenceNode, a);        }        decimal sum = 0;        foreach (var item in list) sum += item.A;

所以,只有当您打算将几个项目,你
什么地方有,你打算插入的项目,然后用链表的参考。仅仅因为您必须插入很多项目,并不能因此而使其更快,因为在您想要插入的位置进行搜索需要花费时间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418842.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号