新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch5.pptVIP

  • 11
  • 0
  • 约 37页
  • 2016-10-26 发布于广东
  • 举报

新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch5.ppt

电子科大成都学院精品课程《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 队列的特点 一种先进先出的数据结构,当插入或删除对象时,对象从队列的一端插入,从另外一端移除 创建队列对象

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档