• C#数据结构选择


    选择一个合适的数据结构会对程序的性能有着显著的提高

    线性表和链表:

      1、LinkedList<T>:适合于元素数组不固定,存在大量列表的头尾添加动作场合。其它可使用List<T>。

      2、Arra:元素数量固定,需要用到检索(即索引器)。

      3、List<T>:元素数量不固定,需要用到索引器。

    栈和队列(只有在模拟栈和队列时才考虑):

      1、Stack (Stack<T>):当需要实现 LIFO(Last In First Out)时。

      2、Queue (Queue<T>):当需要实现 FIFO(First In First Out)时。

     哈希(需要大规模查找):

      1、Hash table (Dictionary<K,T>):当需要使用键值对(Key-Value)来快速添加和查找,并且元素没有特定的顺序时。有了泛型版本的字典,我们几乎永远不需要使用非泛型的HashTable

      2、Tree-based dictionary (SortedDictionary<K,T>):当需要使用键值对(Key-Value)来快速添加和查找,并且元素总是需要根据 Key 来排序时。

     集合(保存一组唯一的值/模拟集合运算):

      1、Hash table based set (HashSet<T>):当需要保存一组唯一的值,并且元素没有特定顺序时。

      2、Tree based set (SortedSet<T>):当需要保存一组唯一的值,并且元素总是需要排序时。


    树:

    参考风口上的猪.Net面试系列文章http://www.cnblogs.com/haoyifei/p/5790168.html

  • 相关阅读:
    一个封装好的使用完成端口的socket通讯类
    IOCP编程注意事项
    判断socket是否连接(windows socket)
    CRITICAL_SECTION同步易出错的地方
    OCP-1Z0-053-V13.02-43题
    OCP-1Z0-053-V13.02-24题
    OCP-1Z0-053-V13.02-490题
    OCP-1Z0-053-V12.02-456题
    OCP-1Z0-053-V12.02-447题
    OCP-1Z0-053-V13.02-710题
  • 原文地址:https://www.cnblogs.com/liuxiaopi/p/6000287.html
Copyright © 2020-2023  润新知