欢迎来到天天文库
浏览记录
ID:43515754
大小:843.74 KB
页数:32页
时间:2019-10-09
《C#新课件第十二讲》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C#语言编程第十二讲:集合本章内容集合的概念Stack和QueueDictionaryArrayList和List一、集合的概念为什么要有集合对于很多应用程序,需要创建和管理相关对象组。有两种方式可以将对象分组,1.创建对象数组,如下例:为什么要有集合但是,这样去实现有什么缺点呢?数组的初始化必须要固定数量,即数组的长度。集合的概念创建和管理相关对象组的第二种方式就是:创建对象集合。集合提供一种灵活的处理方法。与数组不同,处理的对象组可根据程序更改的需要动态地增长和收缩。对于某些集合,您可以为放入该集合的任何对象分配一个“键”,以便
2、使用该键快速检索对象。注意:集合是类,因此必须声明新集合后,才能向该集合中添加元素。集合的基本信息集合分为两种类型:非泛型集合和泛型集合。使用非泛型集合的需引入:System.Collections命名空间。使用泛型集合需引入:System.Collections.Generic命名空间。集合的基本信息System.Collections命名空间下的集合类:类描述ArrayList表示大小根据需要动态增加的对象数组。Hashtable表示根据键的哈希代码进行组织的键/值对的集合。Queue表示对象的先进先出(FIFO)集合。Stack表示
3、对象的后进先出(LIFO)集合。集合的基本信息System.Collections.Generic命名空间下的集合类:类描述Dictionary表示根据键进行组织的键/值对的集合。表示可通过索引访问的对象的列表。提供用于对列List表进行搜索、排序和修改的方法。Queue表示对象的先进先出(FIFO)集合。表示根据键进行排序的键/值对的集合,而键基于的SortedList是相关的IComparer实现。Stack表示对象的后进先出(LIFO)集合。二、Stack和
4、QueueStackStack称为栈,栈和队列非常相似,只不过队列是先进先出,而栈中的数据添加和移除都在一端进行,遵守栈中的数据则后进先出。Stack类实现了ICollection和IEnumerable接口。定义如下:Stackstack=newStack();StackstackInt=newStack();Stack类成员介绍类成员说明Push()将对象插入Stack的顶部。(入栈操作)Pop()移除并返回Stack顶部的对象。(出栈操作)Peek()返回位于Stack顶部的对象,但不移除。Contains()确
5、定某元素是否在Stack中。Clear()从Stack中移除所有对象。Count获取Stack中包含的元素。注意区分Pop()和Peek()的区别。Stack总结1.后进先出(LIFO)的一种数据结构。2.随着向Stack中添加元素,容量通过重新分配按需自动增加。3.Stack接受null作为有效值并且允许重复的元素。QueueQueue称为队列,队列是这样一种数据结构,数据有列表的一端插入,并由列表的另一端移除。就像单行道,只能从一段进,从一端出。Queue类同样也是实现了ICollection和IEnumerable接口。Queueq
6、ueue=newQueue();QueuequeueString=newQueue();Queue类成员介绍类成员说明Enqueue()将对象添加到Queue的结尾处。Dequeue()移除并返回位于Queue开始处的对象。Peek()返回位于Queue开始处的对象但不将其移除。Clear()从Queue中移除所有对象。Contains()确定某元素是否在Queue中。Count获取Queue中包含的元素数。Queue类总结1.先进先出(FIFO)的一种数据结构。2.随着向Queue中添加元素,容量通过重新
7、分配按需自动增加。可通过调用TrimToSize来减少容量。3.Stack接受null作为有效值并且允许重复的元素。4.在AI寻路算法中经常用的Queue。练习1练习Stack、Queue操作,思考生活中那些事物跟栈的“后进先出”思想相似,那些跟队列相似。自己查阅MSDN,练习Stack、Queue中的ToArray,Clone,CopyTo等方法。三、DictionaryDictionary类Dictionary类称为字典类,表示键和值的集合。其中TKey表示字典中的类型,Tvalue
8、表示字典中的值类型。Dictionary类实现了ICollection、IEnumerable、IDictionary·接口。定义如下:Dictionarydic=ne
此文档下载收益归作者所有