LinkedList与List <t> </t>

时间:2011-05-03 14:19:42

标签: c# performance list linked-list

  

可能重复:
  When should I use a List vs a LinkedList

如果我希望不使用索引访问我的数据结构,我可以使用多少保存     列表上的LinkedList? 如果我不是100%肯定我永远不会使用索引访问,我想知道其中的区别。

假设我有N个实例。在LinkedList中插入和删除将只是一个o(1)op,其中在List中它可能是O(n),但由于它被优化,所以知道n的某些值的差异会很好。 比如N = 1,000,000,N = 1,000,000,000

3 个答案:

答案 0 :(得分:4)

List<T>只是数组的包装器。 LinkedList<T>只有在您访问顺序数据(向前或向后)时效率最高。

链接列表可以非常快速地插入或删除列表成员。链表中的每个成员都包含指向列表中下一个成员的指针,以便在i:

位置插入成员
update the pointer in member i-1 to point to the new member
set the pointer in the new member to point to member i

请检查:When should I use a List vs a LinkedList

答案 1 :(得分:1)

你检查过这个帖子了吗? When should I use a List vs a LinkedList 似乎有你正在寻找的大部分信息。

答案 2 :(得分:1)

如果您在列表中执行许多随机插入和删除项目,则

LinkedList<T>非常有用。否则List<T>可能是最好的选择,因为它不会带来链接列表中元素的开销(也可以被索引)。

但是,如果您担心性能,则需要测试实际代码。