C#程序设计45 泛型和集合

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

集合属性
修改或者获取ArrayList的容量 使用Capacity属性,通过设置该属性的值可以修改
ArrayList的容量;读取该属性的值可以获取 ArrayList的容量 当为ArrayList对象添加的数据元素的个数超出初始 化时指定的数据项个数时,ArrayList对象的容量还 可以自动增长默认增长后的容量为原来的2倍,即数 据项的个数为初始化时的2倍。
q.Enqueue("0001");
q.Enqueue("洗发水");
q.Enqueue(15);
Console.WriteLine("入队后,队列的大小{0}", q.Count);
q.Dequeue();
Console.WriteLine("出对后,队列的大小{0}", q.Count);
foreach (object item in q)
从出口出来。队列cla{s一s Pro般gram有入队和出队的操作,队列,
先进先出。Enqueus{ taetic方void 法Main(入string队[] arg列s) ,Dequeue方法出
队列。
Queue q = new Queue(); Console.WriteLine("入队前,队列的大小{0}", q.Count);
{
Console.WriteLine("队列中的元素{0}", item);
}
Console.ReadKey();
}
}
Stack类
栈,后进先出。Push方法入栈,Pop方法出栈。 Stack是又一重要的集合类,它的功能与Queue相似 ,但也有不同。它的特点是后进先出,即最后进入的 元素会最先出来。堆栈一般有进栈和出栈的操作。
源自文库用集合类型
1. ArrayList类 2. Stack类 3.Queue类 4.Hashtable类
集合优点
数组Array是固定大小的,不能伸缩;而集合却是可 变长的。
数组要声明元素的类型,集合类的元素类型却是 object。
数组可读可写不能声明只读数组。集合类可以提供 ReadOnly方法以只读方式使用集合。
public void Del() {
s.Del(); Console.WriteLine("平均分是{0}", s.Average());
if (al.Count > 2) {
Console.ReadKey();
al.Sort();
al.RemoveAt(0);
}
al.RemoveAt(al.Count - 1);
集合概述
如果对象可以提供对相关对象的引用,那么它就是一 个集合 ,它可以遍历集合中的每个数据项;
专业的说法是所有实现了 System.Collections.IEnumerable接口的类的对象 都是集合。
数据集合类都位于System.Collections命名空间中。
知识点1:非泛型集合
ArrayList常用的属性和方法如下表所示
属性 Capacity
Count 方法 Add Clear
CopyTo
Insert Remove RemoveAt Reverse
Sort
说明 获取或设置集合可包含的元素数 获取集合中实际包含的元素数
说明 将元素添加到集合的结尾处
从集合中移除所有元素 将ArrayList或它的一部分复制到一维数组
中 将元素插入到集合的指定索引处 从集合中移除特定值的第一个匹配项 移除集合中指定索引处的元素
将集合中元素的顺序反转 将集合或集合的一部分进行排序
【例class4Sc-ore7】歌唱比赛计分器。从键盘输入评委打
{
出的分数,去掉一个最高分和一个最低分,显示 ArrayList al = new ArrayList(); public void AddMark()
}
}
}
public double Average() {
double sum = 0; foreach (int i in al) {
sum += i; } return sum / al.Count; } }
Queue类
Queue是先进先出的集合类,也成为队列。队列的
特性是一端进,一端出,即先进入队列的元素将会先
【例4cla{s-s P8rog】ram 实现数值进制的转换。 static string Convert(int i, int j) { if (i < 2 || j > 16) { return "只能将十进制转化为二到十六进制"; } Stack stack = new Stack(); do { int k = i % j; char c = (k < 10) ? (char)(k + 48) : (char)(k + 55); stack.Push(c);
单元4 C#进阶编程
知识目标
(1)掌握结构化的异常处理机制; (2)深刻理解委托和事件; (3)掌握枚举和结构; (4)掌握字符串的常用方法; (5)掌握正则表达式的基本用法; (6)掌握常用的集合类和泛型集合类。
能力目标
(1)能够捕获并处理异常; (2)能使用枚举或结构描述数据; (3)能对文本进行较为复杂的处理; (4)能使用正则表达式实现文本的验证; (5)能定义和使用委托类型; (6)能给对象添加事件并能处理事件; (7)能使用集合类存储数据,能编写基于栈、队
平均分。 { int i = 0; while (true)
{
Console.WriteLine("请输入评为分数,以-1结束");
i = int.Parse(Console.ReadLine());
if (i != -1) al.Add(i);
else break;
} }
class Program { static void Main(string[] args) { Score s = new Score(); s.AddMark();
列、链表、哈希表等数据结构的程序。
教学任务
任务1 异常处理 任务2 枚举和结构 任务3 委托和事件 任务4 字符串与正则表达式 任务5 泛型和集合
单元4 C#进阶编程
任务5 泛型和集合
引例
实现简单迷宫。寻找一条从入口到出口的通路。
知识储备
知识点1:非泛型集合。 知识点2:泛型概述。 知识点3:泛型集合。
相关文档
最新文档