列表、排序列表和数组列表之间有啥区别? (C#)
Posted
技术标签:
【中文标题】列表、排序列表和数组列表之间有啥区别? (C#)【英文标题】:What are the differences between a list, sorted list, and an array list? (c#)列表、排序列表和数组列表之间有什么区别? (C#) 【发布时间】:2016-01-29 03:31:12 【问题描述】:根据我的阅读,列表、排序列表和数组列表有很多共同点,但同时也有一些不同之处。
我想知道:初学者应该知道它们之间的区别是什么?为什么选择一个而不是另一个?在代码中使用它们时要养成哪些好习惯?
感谢您的宝贵时间。
【问题讨论】:
尝试阅读一些书籍。例如 - c# 深度 manning.com/books/c-sharp-in-depth-third-edition 【参考方案1】:来自 MSDN:
一个 SortedList 元素可以通过它的键来访问,就像一个元素在 任何 IDictionary 实现,或其索引,如 任何 IList 实现。
一个 SortedList 对象在内部维护两个数组来存储 列表的元素;也就是说,一个数组用于键,另一个数组 关联值的数组。每个元素都是一个键/值对 可以作为 DictionaryEntry 对象访问。键不能为空,但 一个值可以。
对于选择最佳收藏,您可以查看this。
【讨论】:
在内部使用数组时,写入的列表 O(n) 如何?我想这是最坏的情况,当它必须调整数组大小时..? 非常漂亮的床单!我会添加“B-Tree”和“SkipList”。为了我的需要,我必须维护一个有序的时间戳列表,所以当我在中间插入一个新的时,如果我使用 LinkedList,找到正确的插入位置是 O(n)。所以我使用了一个 SkipList,它是 O(log n) :en.wikipedia.org/wiki/Skip_list 我自己在正确位置插入的性能比较要好得多。 你知道空间效率吗?【参考方案2】:使用 List
SortedList
【讨论】:
以上是关于列表、排序列表和数组列表之间有啥区别? (C#)的主要内容,如果未能解决你的问题,请参考以下文章