什么时候应该使用列表与LinkedList
什么时候使用List而不是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;
}
}
回答:
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;
回答:
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。
回答:
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;
回答:
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;
回答:
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;
所以,只有当您打算将几个项目,你
什么地方有,你打算插入的项目,然后用链表的参考。仅仅因为您必须插入很多项目,并不能因此而使其更快,因为在您想要插入的位置进行搜索需要花费时间。
以上是 什么时候应该使用列表与LinkedList 的全部内容, 来源链接: utcz.com/qa/420737.html