深入.NET平台和C#编程_使用集合组织相关数据

                            使用集合组织相关数据

集合概述

集合简单的说就是数组的升级版。他可以动态的对集合的长度(也就是集合内最大元素的个数)进行定义和维护!

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中值得集合

  返回值类型方法名称                            说明
voidAdd(Object Key,Object Value)将带有指定键和值得元素添加到HashTable中
VoidRemove(Object  Key)从HashTable中移除带有特定键的元素
VoidClear()清除HashTable中的所有元素
泛型和泛型集合

泛型和泛型集合

通过ArrayList和HashTable存储的数据都会转换成Object类型,这就意味着它可以在一个集合中存储不同的类型元素,在遍历集合时就有可能引发强制类型转换错误的问题。而泛型集合是类型安全的,在定义时就先定了集合中的元素类型,下面将详细讲解泛型和泛型集合。

泛型

泛型是C#2.0 中的一个新特性,泛型引入了一个概念:类型参数,通过使用类型参数(T)减少了运行时强制类型转换或装箱拆箱操作的风险,同过泛型可以最大限度的重用代码,保护类型安全及提高性能,它的最常见应用是创建集合类,可以约束集合类中的元素类型。个比较典型的泛型集合是LIst<T>和Dictionary<K,V>,下面进行详细讲解、

泛型集合

在System.Collections.Generic命名空间中定义了去多泛型集合类这些类可以代替上面的ArrayList

定义一个List<T>集合的语法如下:

List <T>  集合名称=new   List<T>();

“<T>”中的T可以对集合中的元素类型进行约束,T表名集合管理的元素类型。

List<T>和ArrayList的区别

  1. List<T>对保存的元素类型做约束,ArrayList可以保存任何类型的元素
  2. list<T>保存值类型元素不会进行装箱拆箱操作而ArrayList会

泛型集合Dictionary<K,V>

泛型集合Dictionary可以代替上面的HashTable

定义一个泛型集合Dictionary<K,V>的语法

Dictionary<K,V>  集合名称=new   Dictionary<K,V>();

在”<K,V>”中K表示集合中Key的类型,V表示Value的类型,他们的含义和List<K,V>是相同的

    1. Dictionary<K,V>对保存的元素类型做约束,HashTablet可以保存任何类型的元素
    2. Dictionary<K,V>保存值类型元素不会进行装箱拆箱操作而HashTablet会

泛型类

在集合中使用泛型只是泛型多种应用的一种,在类、方法等方面已有泛型的应用

定义一个泛型类的语法如下:

public class     类名<T>
{
    //....
}

T指类型参数,代表具体的数据类型,可以是值类型也可以是引用类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值