数组和集合
来源:互联网 发布:ubuntu如何打开u盘 编辑:程序博客网 时间:2024/04/29 18:49
数组是包含一组类型相同的多个数据结构,可以通过数组的索引来访问数组的变量。语法:数据类型 [] 数组名=new 数组类型[数组长度];
数组实例:
string[] name=new string[4];
name[0]="张三";
name[1]="李四";
name[2]="王五";
name[3]="赵六";
除了数组以外,C#中还有四种存放数据的集合:ArrayList、Hashtable以及它俩对应的泛型版集合。
集合是组合在一起的数据组,是组合在一起的类型化数据对象,数组是最基本、最常用的集合。数组的长度是固定的,定义时就已经给定了数组的最大长度,并且数组内的元素的类型都是一致的,并不是
什么数据类型都能存放的,而集合是可变长度的数组,能提高内存的使用率,并且可以存放多种数据类型。ArrayList是一种大小可按需动态分配的数组,定义ArrayList语法如下:
ArrayList lst=new ArrayList (); 或 ArrayList lst=new ArrayList (5);
使用Add方法可以添加object类型的数据,即C#支持的数据类型。ArrayList的最大特点就是长度可自动收缩或扩展。并且可以存放任意的数据类型,但是在取数据的时候需要数据类型转换。
Hashtable 数组和ArrayList是按照索引,也就是下标号来访问其中的元素的,但如果集合中的元素位置频繁变化,那么再用这种方式访问元素就显得很困难了,Hashtable就解决了这个问题,它是以
键/值的方式存放数据的,键和值是一一对应的,键不能相同。语法:Hashtable ht=new Hashtable (); ht.Add(object key ,object Value);
从以上可以看出,Hashtable添加元素使用的也是Add方法,不过它需要两个参数,一个是键,另一个是值。两个参数的数据类型都是object类型,因此在取值时需要类型转换。
从ArrayList和Hashtable可以看出,当从这两种集合中取值时都需要类型转换,这使得我们在写代码时很繁琐,那么有没有一中不用类型转换而直接取值的集合呢,这时候就出现了泛型的概念,和以上
两种集合对应的泛型集合分别是List和Dictionary,以下介绍这两种泛型集合。
List<T> 定义语法:List<T> lst=new List<T>(); 其中T代表集合元素的类型,从语法中不难理解,既然定义时就规定了数据类型,也就是说添加元素时必须是这个类型才能添加进去,所以在用Add
给List<T> 添加元素时必须符合定义时的数据类型。下面比较一下ArrayList和List<T> 的区别:
不同点 相同点
ArrayList 可以添加任何类型 通过索引访问元素
添加/访问元素需要拆/装箱 添加方法相同
List<T> 对保存的对象类型约束 删除方法相同
添加/访问元素无需拆/装箱
而Dictionary是Hashtable的泛型版,通过键/值取值,在存储数据时有类型的约束。
需要说明的是,在使用ArrayList和Hashtable时需要引入System.Collections命名空间,而使用List<T>和Dictionary时需要引入System.Collections.Generic命名空间。
数组实例:
string[] name=new string[4];
name[0]="张三";
name[1]="李四";
name[2]="王五";
name[3]="赵六";
除了数组以外,C#中还有四种存放数据的集合:ArrayList、Hashtable以及它俩对应的泛型版集合。
集合是组合在一起的数据组,是组合在一起的类型化数据对象,数组是最基本、最常用的集合。数组的长度是固定的,定义时就已经给定了数组的最大长度,并且数组内的元素的类型都是一致的,并不是
什么数据类型都能存放的,而集合是可变长度的数组,能提高内存的使用率,并且可以存放多种数据类型。ArrayList是一种大小可按需动态分配的数组,定义ArrayList语法如下:
ArrayList lst=new ArrayList (); 或 ArrayList lst=new ArrayList (5);
使用Add方法可以添加object类型的数据,即C#支持的数据类型。ArrayList的最大特点就是长度可自动收缩或扩展。并且可以存放任意的数据类型,但是在取数据的时候需要数据类型转换。
Hashtable 数组和ArrayList是按照索引,也就是下标号来访问其中的元素的,但如果集合中的元素位置频繁变化,那么再用这种方式访问元素就显得很困难了,Hashtable就解决了这个问题,它是以
键/值的方式存放数据的,键和值是一一对应的,键不能相同。语法:Hashtable ht=new Hashtable (); ht.Add(object key ,object Value);
从以上可以看出,Hashtable添加元素使用的也是Add方法,不过它需要两个参数,一个是键,另一个是值。两个参数的数据类型都是object类型,因此在取值时需要类型转换。
从ArrayList和Hashtable可以看出,当从这两种集合中取值时都需要类型转换,这使得我们在写代码时很繁琐,那么有没有一中不用类型转换而直接取值的集合呢,这时候就出现了泛型的概念,和以上
两种集合对应的泛型集合分别是List和Dictionary,以下介绍这两种泛型集合。
List<T> 定义语法:List<T> lst=new List<T>(); 其中T代表集合元素的类型,从语法中不难理解,既然定义时就规定了数据类型,也就是说添加元素时必须是这个类型才能添加进去,所以在用Add
给List<T> 添加元素时必须符合定义时的数据类型。下面比较一下ArrayList和List<T> 的区别:
不同点 相同点
ArrayList 可以添加任何类型 通过索引访问元素
添加/访问元素需要拆/装箱 添加方法相同
List<T> 对保存的对象类型约束 删除方法相同
添加/访问元素无需拆/装箱
而Dictionary是Hashtable的泛型版,通过键/值取值,在存储数据时有类型的约束。
需要说明的是,在使用ArrayList和Hashtable时需要引入System.Collections命名空间,而使用List<T>和Dictionary时需要引入System.Collections.Generic命名空间。
- 数组和集合
- 数组和集合
- java集合和数组
- C#数组和集合
- 数组和集合
- java数组和集合
- 数组和集合
- 集合和数组转换
- 集合和数组
- 数组和集合拾遗
- 数组和集合区别
- 数组和集合
- 遍历数组和集合
- 集合和数组
- 集合和数组
- 数组和集合
- 集合和数组
- 数组和集合练习
- Android自定义Activity窗口标题
- linux下svn命令使用大全
- linux mount / umount 命令
- 仅通过崩溃地址找出源代码的出错行
- 深入了解Struts2返回JSON数据的原理及具体应用范例
- 数组和集合
- AT89S52之(定时器2)Timer2
- 电子工程师必备网站
- ffmpeg常用参数一览表
- ASP.Net:Javascript 通过PageMethods 调用后端WebMethod方法 + 多线程数据处理 示例
- Java开发者需坚守的十大基本准则
- c# 数组(Array),ArrayList ,List 的区别与联系
- Hibernate之DAO操作基础类
- failed to create the java virtual machine报错的解决方法