文档章节

C#的6种常用集合类大比拼

不折腾难受斯基
 不折腾难受斯基
发布于 2015/05/12 23:02
字数 582
阅读 16
收藏 0

一.先来说说数组的不足(也可以说集合与数组的区别): 
1.数组是固定大小的,不能伸缩虽然System.Array.Resize这个泛型方法可以重置数组大小,但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化随后以前的数组就废弃!而集合却是可变长的 
2.数组要声明元素的类型,集合类的元素类型却是object. 
3.数组可读可写不能声明只读数组集合类可以提供ReadOnly方法以只读方式使用集合 
4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用集合也是数据列表却不使用下标访问很多时候集合有定制的下标类型,对于队列和栈根本就不支持下标访问! 
二.下面讲述6种常用集合 
1.ArrayList类 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
2.Stack类 
栈,后进先出push方法入栈,pop方法出栈 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
3.Queue类 
队列,先进先出enqueue方法入队列,dequeue方法出队列 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
4.Hashtable类 
哈希表,名-值对类似于字典(比数组更强大)哈希表是经过优化的,访问下标的对象先散列过如果以任意类型键值访问其中元素会快于其他集合GetHashCode()方法返回一个int型数据,使用这个键的值生成该int型数据哈希表获取这个值最后返回一个索引,表示带有给定散列的数据项在字典中存储的位置 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
5.SortedList类 
与哈希表类似,区别在于SortedList中的Key数组排好序的 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
6.NameValueCollection类 
官方给NameValueCollection定义为特殊集合一类,在System.Collections.Specialized下 
System.Collections.Specialized下还有HybridDicionary类,建议少于10个元素用HybridDicionary,当元素增加会自动转为HashTable 
System.Collections.Specialized下还有HybridDicionary类,字符串集合 
System.Collections.Specialized下还有其他类大家可以各取所需! 
言归正转主要说NameValueCollection,HashTable  和  NameValueCollection很类似但是他们还是有区别的,HashTable  的KEY是唯一性,而NameValueCollection则不唯一! 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
C的6种常用集合类大比拼 - Smile宅男 - Smile宅男 
----------------------------
一键转贴,快速捕捉生活精彩,赢每周好礼!查看活动首页>>

本文转载自:http://blog.csdn.net/ajkone/article/details/45528755

不折腾难受斯基
粉丝 14
博文 131
码字总数 9879
作品 0
海淀
QA/测试工程师
私信 提问
C#的6种常用集合类大比拼【月儿原创】

C#的6种常用集合类大比拼 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.6.27 说明:MSDN没有说出几种集合类其间的区别,当然欲知更多细节可参考MSDN。 一.先来说说数组的...

晨曦之光
2012/03/09
53
0
【转载】C#编程中两个List集合使用Intersect方法求交集

在C#语言程序设计中,List集合是常用的集合数据类型,在涉及集合类型的运算中,有时候我们需要计算2个List集合中共有的数据,即对2个List集合求交集运算。此时可以使用C#语言提供的Intersect...

江湖逍遥
05/12
0
0
5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq

5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编程 —— 第三...

雲霏霏
2014/09/28
0
0
读论文系列:Object Detection ECCV2016 SSD

转载请注明作者:梦里茶 Single Shot MultiBox Detector Introduction 一句话概括:SSD就是关于类别的多尺度RPN网络 基本思路: 基础网络后接多层feature map 多层feature map分别对应不同尺...

梦里茶
2018/04/06
0
0
lambda表达式之进化

原文出处:xpy0928 前言 在C#我们可以自定义委托,但是C#为什么还要内置泛型委托呢?因为我们常常要使用委托,如果系统内置了一些你可能会用到的委托,那么就省去了定义委托,然后实例化委托...

xpy0928
2016/06/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面试爱奇艺,竟然挂在第5轮……

今天给大家分享我曾经在爱奇艺的面试,过程还是比较有意思的,可以给大家一些参考 <br> 聊骚阶段 嗲妹妹:你好,我是爱奇艺的HR,我们正在招聘运维开发岗位,请问您最近有在看工作机会吗? ...

上海小胖
40分钟前
2
0
Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
9
0
解决多线程并行加载缓存问题(利用guava实现)

依赖 com.google.guava:guava:20.0 import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import j......

暗中观察
昨天
4
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部