- 11
- 0
- 约 37页
- 2016-10-26 发布于广东
- 举报
电子科大成都学院精品课程《Visual C# .Net程序设计》 Visual C# .Net程序设计 电子科大成都学院计算机系 课件制作:罗福强 E-Mail:LFQ501@SOHU.COm 第五章 集合、索引器与泛型 5.1 集合 5.2 索引器 5.3 泛型 5.1集合 一、集合概述 二、选择集合类 三、集合的创建与操作 一、集合概述 集合是通过高度结构化的方式存储任意对象的类,与无法动态调整大小的数组相比,集合不仅能随意调整大小,而且对存储或检索存储在其中的对象提供了更高级的方法。 NET Framework 2.0引入了泛型集合(如对象列表List)和强类型非泛型集合(字符串集合StringCollection),在使用泛型集合或非强类型非泛型集合时,要保证元素的类型是集合所需的类型。 System.Collections命名空间的ICollection接口定义了所有非泛型集合的大小和操作方法,包括添加、移除与搜索集合元素等。 System.Collections命名空间还包含了ICollection接口最常用的已实现的集合类。 二、选择集合类 1..NET Framework的集合类 2.集合类的选择 1..NET Framework的集合类 (1) 常用集合 (2) 位集合 包括BitArray和BitVector32 (3) 专用集合 包括StringCollection、StringDictionary和NameValueCollection等 2.集合类的选择 选择集合类时,一般要考虑以下问题: (1)是否需要一个序列列表,需要先进先出行为时可使用 Queue 队列类,在需要后进先出行为时可使用 Stack栈类。 (2)是否需要随机访问集合中的元素,此时不能选择Queue 队列类、Stack栈类、LinkedList 双向链表类 (3)是否需要通过索引访问每个元素,只有ArrayList、StringCollection等是从索引为零的元素开始逐个访问集合元素。Hashtable、Dictionary通过元素的键(即元素名字)提供对元素的访问。而NameValueCollection 类和SortedList 泛型类通过其元素的从零开始的索引,或者通过其元素的键提供对元素的访问。 (4)是否包含一个值、一个键和一个值的集合,还是一个键和多个值的集合。其中,“一个值”的集合是一种基于 IList 列表接口派生的集合,“一个键和一个值”的集合是一种基于IDictionary字典接口的集合,“一个键和多个值”的集合是 NameValueCollection 类。 集合类的选择(续) (5)是否需要用与输入元素方式不同的方式对元素排序。Hashtable 按其元素的哈希代码对元素排序,SortedList以及 SortedDictionary根据 IComparer 实现按键对元素的排序,而ArrayList提供 Sort 排序方法。 (6)是否需要信息的快速搜索和检索,对于小集合(10个元素或更少),ListDictionary 比 Hashtable 快,SortedDictionary 泛型类提供比 Dictionary 泛型类更快的查找。 (7)是否需要只接受字符串的集合,如StringCollection和 StringDictionary等。 三、集合的创建与操作 1. 动态数组类ArrayList 2. 队列Queue 3. 栈Stack 4. 哈希表Hashtable 5. 字符串字典StringDictionary 6. 键/值对集合NameValueCollection 1. 动态数组类ArrayList (1) ArrayList与Array的区别 Array 的大小是固定的,而 ArrayList的大小可根据需要自动扩充; 在Array中一次只能获取或设置一个元素的值,而在ArrayList中允许添加、插入或移除某一范围的元素; Array 的下限可以自定义,而ArrayList的下限始终为零; Array 可以具有多个维度,而 ArrayList始终只是一维的; Array 位于 System 命名空间中,ArrayList 位于 System.Collections 命名空间中。 (2) 创建动态数组: ArrayList 列表对象名 = new ArrayList(?); 例如, ArrayList list = new ArrayList(); list.Add(罗福强); list.Add(30); 2. 队列Queue 队列的特点 一种先进先出的数据结构,当插入或删除对象时,对象从队列的一端插入,从另外一端移除 创建队列对象
您可能关注的文档
- 新Visual Basic程序设计教程 教学课件 杨培添 第4章.ppt
- 新Visual Basic程序设计教程 教学课件 杨培添 第5章.ppt
- 新Visual Basic程序设计教程 教学课件 杨培添 第6章.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _1.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _2.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _3.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _4.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _5.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _6.ppt
- 新Visual Basic程序设计教程 普通高等教育“十一五”国家级规划教材 教学课件 李雁翎 周东岱 潘伟 yl _7.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch6.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch7.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch8.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch9.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch10.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch11.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch12.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第1章.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第2章.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第3章.ppt
最近下载
- 致用英语口语教程(第三版)(上)Unit7课件PPT课件.pptx VIP
- 苯磺贝他斯汀口崩片-药品临床应用解读.pptx VIP
- 毕业设计(论文)-自动饺子机设计.doc VIP
- 03J012-2 环境景观-绿化种植设计国标 建筑图集 汇编 .docx VIP
- 《Spark批处理技术与应用》课件——4.结构化流处理.pptx VIP
- 2024译林版七年级上册英语单词字帖—衡水体.pdf VIP
- 百格测试作业指导书.docx VIP
- 山东省菏泽市高职单招2022-2023学年医学综合自考真题(附答案).docx VIP
- 长江大学博士配偶安置实施细则.docx
- 甘肃中医药大学专升本免试题目.pdf VIP
原创力文档

文档评论(0)