如果我希望不使用索引访问我的数据结构,我可以使用多少保存 列表上的LinkedList? 如果我不是100%肯定我永远不会使用索引访问,我想知道其中的区别。
假设我有N个实例。在LinkedList中插入和删除将只是一个o(1)op,其中在List中它可能是O(n),但由于它被优化,所以知道n的某些值的差异会很好。 比如N = 1,000,000,N = 1,000,000,000
答案 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
答案 1 :(得分:1)
你检查过这个帖子了吗? When should I use a List vs a LinkedList 似乎有你正在寻找的大部分信息。
答案 2 :(得分:1)
LinkedList<T>
非常有用。否则List<T>
可能是最好的选择,因为它不会带来链接列表中元素的开销(也可以被索引)。
但是,如果您担心性能,则需要测试实际代码。