当前位置: 首页 > news >正文

重庆网络营销网站建设销售山西免费网站建设

重庆网络营销网站建设销售,山西免费网站建设,公司网站在哪里做,中国建设质量网官方网站Array数组 内存上连续存储#xff0c; 数组是引用类型而不是值类型。 优点#xff1a; 按照索引查询元素速度很快。 按照索引遍历数组很方便。 缺点#xff1a; 声明数组时大小必须确定#xff0c;且大小不能改变。 添加和删除元素的速度很慢#xff0c;因为需要移…Array数组 内存上连续存储 数组是引用类型而不是值类型。 优点 按照索引查询元素速度很快。 按照索引遍历数组很方便。 缺点 声明数组时大小必须确定且大小不能改变。 添加和删除元素的速度很慢因为需要移动其它元素。 数组只能存储一种数据类型。 一维数组的声明和创建形式: 数组类型 [ ] 数组名 new 数组类型 [数组长度] 如 int [ ] one  new int [5] { 1, 2, 3, 4, 5 };  相当于MFC 的CArray 二维数组 int [,] one  new int [2,3]; 位数组 BitArray ArrayList  ArrayList类相当于一种高级的动态数组它是Array类的升级版本.本质是一个object类型的数组.ArrayList类是引用类型。连续的内存。在存和使用值类型的对象时或发生装箱/拆箱的操作。 using System.Collections; ArrayList Listnew ArrayList(); ArrayList 转Array的函数 Array ToArray(Type type); ArrayList List new ArrayList(); for (int i 0; i  10; i) List.Add(i); int[] values (int[])List.ToArray(typeof(int)); //正确 List ListT 等效于ArrayList,性能比Arraylist高。 List的内部是用数组实现的而不是链表,所以也是连续内存。当元素被添加到List中时List的容量会根据需要自动增加通过重新分配内部数组。 Listint primeNumbers new Listint(); List转Array的函数 Listint primeNumbers new Listint(); for (int i 0; i  10; i) primeNumbers.Add(i); int[] Numbers primeNumbers.ToArray(); Array转List的函数 int[] array  { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ,10}; Listint list  new Listint(array); 相当于 c 的vector LinkedList双向链表 内存非连续的、非顺序的存储结构无法通过下标查找元素在查找链表元素时总是从头结点开始查找动态调整容量。 查询复杂度为 O(n)操作复杂度为 O(1)。 遍历 LinkedListNodeint nowNodelinkedList.First; while(nowNode!null) { nowNodenowNode.Next; } 或者 foreach(int item in linkedList) { Console.WriteLine(item); } Array转LinkedList的函数 int[] array  { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ,10}; LinkedListint linkedList  new LinkedListint(array); 相当于c的 list Stack(栈) 栈是有顺序的是一片连续的内存域保持着先进后出的原则。 Stackstring numbers new Stackstring(); numbers.Push(one); string str numbers.Peek(); //获取不出栈 str  numbers.Pop();//获取并出栈 Queue(队列) 先进先出存在装箱拆箱存储任意类型无法获取指定位置元素只能取出最先存储的元素。 Queuestring queue new Queuestring(); //向队列中添加元素 ueue.Enqueue(老一); queue.Enqueue(老二); queue.Dequeue();获取并移除队列中队首的元素 queue.Peek();返回顶部的对象而不将其从队列中移除 HashSet 是基于哈希表的原理实现的根据key直接访问存储位置的数据结构 无序、不重复 插入、查找时间复杂度为O(1) 不使用索引 容量不足时自动扩容但扩容成本高 HashSetstring hashSet new HashSetstring(); hashSet.Add(123); hashSet.Add(456); //转换成List集合 hashSet.ToList(); 相当于STL 的hash_set或者说unordered_set SortedSet 基于红黑树实现有序、不重复的集合 SortedSetstring SortSet new SortedSetstring(); SortSet.Add(123); hashSet.Add(456); foreach (var index in SortSet) {    } //转换成List集合 SortSet.ToList(); 相当于STL的set Hashtable 基于哈希表实现一系列基于键的哈希代码组织起来的 键/值对 。它使用键来访问集合中的元素。 特点 key(键) 是唯一的不可重复 只能通过 key 查询对应 的value Hashtable hashtable new Hashtable(); hashtable.Add(0, 1); hashtable.Add(1, a); foreach (var key in hashtable.Keys) { var tablekey key; var value hashtable[key]; } 相当于STL 的unordered_map hash_map Dictionary字典 基于哈希表实现字典中的key值是唯一的。 字典底层将数据储存在数组里面通过哈希函数建立Key——Value的对应关系利用拉链法处理哈希冲突。另外字典是线程不安全的如果需要线程安全需要自己加锁 Dictionaryint, string _testDic new Dictionaryint, string(); _testDic.Add(24, Canon); // 注意相同相同Key值只能Add一次 _testDic.Add(34, Jason);                                      // foreach遍历 foreach (var kvp in _testDic) { Console.WriteLine(Key {0}, Value {1}, kvp.Key, kvp.Value); } 相当于STL 的unordered_map hash_map Dictionary和Hashtable对比 DictionaryK,V是泛型的当K或V是值类型时其速度远远超过Hashtable。 由于 Hashtable 和 Dictionary 同时存在, 在使用场景上必然存在选择性, 并不任何时刻都能相互替代.[1] 单线程程序中推荐使用 Dictionary, 有泛型优势, 且读取速度较快, 容量利用更充分.[2] 多线程程序中推荐使用 Hashtable, 默认的 Hashtable 允许单线程写入, 多线程读取, 对 Hashtable 进一步调用 Synchronized() 方法可以获得完全线程安全的类型. 而 Dictionary 非线程安全, 必须人为使用 lock 语句进行保护, 效率大减.[3] Dictionary 有按插入顺序排列数据的特性 (注: 但当调用 Remove() 删除过节点后顺序被打乱), 因此在需要体现顺序的情境中使用 Dictionary 能获得一定方便. SortedDictionary 基于使用红黑树实现的键值对集合。 特点 有序键唯一 只能通过 key(键) 查询对应 的 value(值)  SortedDictionary 可对未排序的数据执行更快的插入和移除操作它的时间复杂度为 O(log n) SortedDictionaryint, string My_sdict new SortedDictionaryint, string(); My_sdict.Add(004, Ask.com); My_sdict.Add(003, Yahoo); foreach (var kvp in My_sdict) {      Console.WriteLine(Key {0}, Value {1}, kvp.Key, kvp.Value); } 相当于STL的map SortedList 排序列表是数组和哈希表的组合使用索引访问各项则它是一个动态数组如果您使用键访问各项则它是一个哈希表。集合中的各项总是按键值排序。 总结 数据结构 类型及备注 插入和删除 查找Array 顺序存储的线性表、定长 不支持这里的插入与删除指会更改表长的行为 O(N)LinkedListT 链式存储的线性表、不定长 O(1) O(N)ListT 顺序存储的线性表、不定长、动态扩容 O(N)结尾则是O(1) O(N)StackT 栈、不定长、动态扩容 O(1) 只能访问栈顶QueueT 队列、不定长、动态扩容 O(1) 只能访问队列头部DictionaryK,T 保存键值对、使用开散列法、不定长、动态扩容、长度总为质数 O(1) O(1)SortedListK,T 保存键值对、内部使用数组实现、保持有序、不定长 O(logN) O(logN)SortedDictionaryK,T 保存键值对、内部使用红黑树实现、保持有序、不定长 O(logN) O(logN)HashSetK 使用开散列法、不定长、动态扩容、长度总为质数、是不含值的字典故复杂度和它完全相同 O(1) O(1)SortedSetT 内部使用红黑树实现、保持有序、不定长、是不含值的SortedDictionaryK,T故复杂度和它完全相同 O(logN) O(logN)
http://www.zqtcl.cn/news/703528/

相关文章:

  • 简要描述创建商务站点的商务天津建设工程合同备案网站
  • 做展示空间设计的网站wordpress调用作品分类
  • 网站怎么做访问量统计百度百科怎么创建自己
  • 泉州开发网站的公司有哪些网站页面相似度查询工具
  • 卖文章的网站源码咸阳做网站的公司电话
  • 网站建设案例百度云怎么在手机上传百度云wordpress
  • 传媒公司取名seo网站推广怎么收费
  • 网站建设具体详细过程WordPress usdt收款
  • 网站标题应怎设置生产备案号怎么查询网站
  • 怎样建立网站目录结构网站 项目方案
  • jsp做网站还响应式科技公司网站模板
  • 杭州网站建设设计公司做阀门网站
  • 用模板建站青岛企业网站制作公司
  • 网站建设经费预算表辽宁工程建设招标网
  • sql数据库查询网站模板谷歌浏览器网页版入口
  • 成都h5建站市场监督管理局举报电话
  • 百度推广弄个网站头像要钱吗?最新新闻热点素材
  • 江苏做网站找谁wordpress主题设置插件
  • 郑州微信网站开发建筑网招工平台
  • 给网站挂黑链普工招聘最新招聘信息
  • 重庆推广网站排名价格上海房产信息网官网
  • 深圳网站公司制作网络公司排名
  • 郑州高端做网站网页制作与网站建设实战大全光盘
  • 科技网站制作公司免费模板建站网站
  • 网页排版精美的中文网站单页设计软件
  • 图书馆网站建设情况会员卡管理系统价格
  • 网站建设的通知沈阳品牌设计公司
  • html5网站框架宝安网站建设深圳信科
  • 做网站单页分销电商平台开发
  • 吉林网站备案南京网站开发选南京乐识好