集合概述 集合简单的说就是数组的升级版。他可以动态的对集合的长度(也就是集合内最大元素的个数)进行定义和维护! arraylist arraylist非常类似于数组。也有人称他为数组列表,它的容量可以根据需要进行动态扩充,而它的索引也会根据集合容量的扩展而重新
集合概述 集合简单的说就是数组的升级版。他可以动态的对集合的长度(也就是集合内最大元素的个数)进行定义和维护!
arraylist arraylist非常类似于数组。也有人称他为数组列表,它的容量可以根据需要进行动态扩充,而它的索引也会根据集合容量的扩展而重新分配和调整。也就是说arraylist集合中的元素的下标是不确定的、可变的。
arraylist类属于system.collections命名空间,这个命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。
语法: using system.collections;//导入命名空间//定义arraylist对象arraylist arraylist集合名称=new arraylist(【长度】);
arraylist的常用方法和属性 属性名称 说明
count 获取arraylist中实际包含的元素数
返回值类型 方法名称 说明
int add(object value) 将对象添加到arraylist的结尾处
void removeat(int index) 移除arraylist指定索引处的元素
void remove(object value) 从arraylist中移除特定的对象
void clear() 从arraylist中移除所有的元素
hashtable在arraylist中我们可以通过索引访问集合中的元素,但是当集合内的元素索引频繁变化时要找出每个元素的位置(索引)就变得非常麻烦你了,
c#提供了一种叫hashtable的数据结构,通常称他为哈希表也有人称他为“字典”,给它起字典这个名字是因为它和字典非常类似,都是通过一个单词查找出有关此单词的更多信息,hashtable是通过键(key)对值(value)来组织数据的
hashtable的常用属性和方法 属性 说明
count 获取包含在hashtable中键值对的数目
keys 获取包含hastable中键的集合
values 获取包含hastable中值得集合
返回值类型 方法名称 说明
void add(object key,object value) 将带有指定键和值得元素添加到hashtable中
void remove(object key) 从hashtable中移除带有特定键的元素
void clear() 清除hashtable中的所有元素
泛型和泛型集合
泛型和泛型集合通过arraylist和hashtable存储的数据都会转换成object类型,这就意味着它可以在一个集合中存储不同的类型元素,在遍历集合时就有可能引发强制类型转换错误的问题。而泛型集合是类型安全的,在定义时就先定了集合中的元素类型,下面将详细讲解泛型和泛型集合。
泛型泛型是c#2.0 中的一个新特性,泛型引入了一个概念:类型参数,通过使用类型参数(t)减少了运行时强制类型转换或装箱拆箱操作的风险,同过泛型可以最大限度的重用代码,保护类型安全及提高性能,它的最常见应用是创建集合类,可以约束集合类中的元素类型。个比较典型的泛型集合是list和dictionary,下面进行详细讲解、
泛型集合在system.collections.generic命名空间中定义了去多泛型集合类这些类可以代替上面的arraylist
定义一个list集合的语法如下:
list 集合名称=new list();
“”中的t可以对集合中的元素类型进行约束,t表名集合管理的元素类型。
list和arraylist的区别list对保存的元素类型做约束,arraylist可以保存任何类型的元素 list保存值类型元素不会进行装箱拆箱操作而arraylist会泛型集合dictionary泛型集合dictionary可以代替上面的hashtable
定义一个泛型集合dictionary的语法
dictionary 集合名称=new dictionary();
在””中k表示集合中key的类型,v表示value的类型,他们的含义和list是相同的
dictionary对保存的元素类型做约束,hashtablet可以保存任何类型的元素 dictionary保存值类型元素不会进行装箱拆箱操作而hashtablet会 泛型类在集合中使用泛型只是泛型多种应用的一种,在类、方法等方面已有泛型的应用
定义一个泛型类的语法如下:
public class 类名{ //....}
t指类型参数,代表具体的数据类型,可以是值类型也可以是引用类型