【问题标题】:What are the differences between a list, sorted list, and an array list? (c#)列表、排序列表和数组列表之间有什么区别? (C#)
【发布时间】:2016-01-29 03:31:12
【问题描述】:

根据我的阅读,列表、排序列表和数组列表有很多共同点,但同时也有一些不同之处。

我想知道:初学者应该知道它们之间的区别是什么?为什么选择一个而不是另一个?在代码中使用它们时要养成哪些好习惯?

感谢您的宝贵时间。

【问题讨论】:

标签: c# arrays list sorting sortedlist


【解决方案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 您可以指定元素的类型,因此通常更易于使用。 ArrayList 是遗留的,可以保存对象,但您必须自己将它们转换为包含的类型。

SortedList 顾名思义是一个类型为 T 的排序列表。当你想要一个排序列表时使用它。当不需要排序或 T 的一般集合就足够或您提供自己的排序机制时,请使用 List。 SortedList 在添加项目时会比 List 慢,所以只在必要时使用它。

【讨论】:

    猜你喜欢
    • 2019-02-12
    • 2012-12-09
    • 1970-01-01
    • 2010-10-12
    相关资源
    最近更新 更多