zoukankan      html  css  js  c++  java
  • 记录几个常用的数据存储类型

    列举项目中常用的几个比较多的数据类型,记录一下方便下次查找,其他还有很多未列举
     
     
    Array/ArrayList/List/LinkedList/Queue/Stack/HastSet/SortedSet/Hashtable/SortedList/Dictionary/SortedDictionary
    IEnumerable、ICollection、IList、IQueryable
    接口是标识功能的,不同的接口拆开,体现接口隔离原则
     
    IEnumerable 任何数据集合,都实现了的,为不同的数据结构,提供了统一的数据访问方式,体现就是迭代器模式
    • 数组

    1. int[] intArray = new int[3];
      ArrayList
      List<int> intList = new List<int>() { 1, 2, 3, 4 };
    2.  日常使用最多的,不用多说
    • 链表

               LinkedList

                        1.元素不连续分配,每个元素都有记录前后节点,节点值可以重复
                        2.不能下标访问,找元素就只能遍历 查找不方便
                        LinkedListNode<int> node123 = linkedList.Find(123);//元素123的位置 从头查找
     

              Queue

                       1 先进先出 放任务延迟执行,A不断写入日志任务 B不断获取任务去执行
                       2. Queue<string> numbers = new Queue<string>();
               

        Stack

                  1 先进后出 解析表达式目录树的时候,先产生的数据后使用
                  2 Stack<string> numbers = new Stack<string>();
    • Set

                 集合:hash分布,元素间没关系,动态增加容量 去重
                 例:统计用户IP;IP投票 交叉并补--二次好友/间接关注/粉丝合集

            HashSet

    1. HashSet<string> hashSet = new HashSet<string>(); //排序的集合:去重 而且排序
    1. SortedSet<string> sortedSet = new SortedSet<string>();
     
     
    • key-value

             - Hashtable 是基于数组实现的 key-value 体积可以动态增加 拿着key计算一个地址,然后放入key-value
             - object-装箱拆箱 如果不同的key得到相同的地址,第二个在前面地址上 + 1
            - 查找的时候,如果地址对应数据的key不对,那就 + 1查找。
            - 查找个数据 一次定位; 增删 一次定位; 增删查改 都很快
            - 浪费空间,数据太多,重复定位定位,效率就下去了
            - 字典:泛型;key - value,增删查改 都很快;有序的
            - 字典不是线程安全 
    1. Hashtable table = new Hashtable();
    2. Dictionary<int, string> dic = new Dictionary<int, string>();
    3. SortedDictionary<int, string> dic = new SortedDictionary<int, string>(); //排序的key-value
    4. SortedList sortedList = new SortedList(); //IComparer

         ConcurrentDictionary

             - 线程安全的字典

             其他线程安全的类型……

  • 相关阅读:
    vuerouter-2.路由跳转
    vuerouter-1.路由基础
    vuebase-11._跨域处理
    vuebase-10_Axios配置
    vuebase--9._axios post请求
    vuebase--8._axios
    vuebase-7.过滤器
    vuebase-6.自定义指令
    vuebase-5.过渡和动画
    vuebase---4.实例生命周期
  • 原文地址:https://www.cnblogs.com/Qintai/p/14470664.html
Copyright © 2011-2022 走看看