20161015随笔添加
今天主要讲述了 第六章 集合及特殊集合
集合的基本信息:
System.Collectioins 命名空间包括接口和类,这些接头盒类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。
System.Collection命名空间包括泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型集合更好的类型安全性和性能。
System.Collection.Specialized命名空间包含专用的和强类型的集合,例如,链接的列表词典、位向量以及只包含字符串的集合。
常用的集合为ArrayList类;特殊集合一般会用到Queue队列集合、Stack栈集合还有Hashtable哈希表集合。
集合不同于数组,是一组可变数量的元素的集合,这些元素可能共享某些特征,需要以某种操作方式一起进行操作。一般来说,这些元素的类型是相同的。
集合与数组的区别:数组是连续的、同一类型数据的一块区域,而集合可以是不连续的、多种数据类型的。
一、ArrayList集合:
ArrayList实现了IList、ICollection、IEnumber接口;
ArrayList与Array的名字很相似,现在来比较一下两者的异同。
相同点:
(1)两者都实现了IList、IList、ICollection、IEnumber接口:
(2)两者都可以使用整数索引访问集合中的元素,包括读取和赋值,且集合中的索引都从0开始。
不同点:
(1)ArrayList是集合,而Array是数组;
(2)ArrayList是具体类,Array是抽象类;
(3)数组必须在实例化时指定元素的数量,该数量一旦确定就不可以更改了,而ArrayList扩展了这一点,当实例化一个ArrayList实例时可以不指定集合元素数(有默认初始容量),当然你也可以指定初始容量;
(4)获取数组的元素时可以使用Length属性,而获取ArrayList集合的元素数时使用count属性、
(5)数组可以有多维,而ArrayList只能是一维。
ArrayList具体提供的功能:
属性 功能说明
.Count 获取ArrayList中实际包含的元素数
方法 功能说明
.Add() 将对象添加到ArrayList的结尾处
.Clear() 从ArrayList中移除所有元素
.Clone() 创建ArrayList的浅表副本
.Contains() 确定某元素是否在ArrayList中
.InexOf() 已重载。返回ArrayList或它的一部分中某个值的第一个匹配项的从0开始的索引
.Insert() 将元素插入Array 的指定索引处的元素
.LastIndexOf() 已重载。返回ArrayList或它的一部分中某个值的第一个匹配项的从0开始的索引
.Remove() 从ArrayList中移除特定对象的第一个匹配项
.RemoveAt() 移除ArrayList的指定索引处的元素、
.sort() 已重载。对ArrayList或它的一部分中的元素进行排序,升序。、
.Reverse() 翻转整个集合
ArrayList集合的示例:
定义集合并添加数据示例:
ArrayList集合的语句示例:
示例一:清空集合中的所有数据
al.clear();//清空集合中的数据元素,清空之后还可以在重新Add添加元素
示例二:查看集合中第一个为12的数据的索引
int sy=al.IntdexOf(12);
Console.WriteLine(第一个索引为:“+sy)
//查找第一个为12的数据的索引
//一定要注意输入时的数据类型
//打印之后如果返回-1,则表示没找到
示例三:创建新的集合,并将之前的集合中的数据复制到新的集合,并判断新集合中是否有某一个数据
ArrayList xal=new ArrayList();
xal=(ArrayList)al.Clone();
//克隆其中的元素数据,装入新的集合中
bool c=xal.Contains(12);
//判断集合中是否含有这个数,返回bool值
二、Stack集合,
栈:stack, 先进后出,一个一个赋值,按顺序。
属性和方法
.count 取集合内元素的个数
.push() 将元素一个一个推入集合中
.pop() 将元素一个个弹出集合
.clear() 清空集合
浙公网安备 33010602011771号