欢迎来到天天文库
浏览记录
ID:56467147
大小:627.00 KB
页数:37页
时间:2020-06-19
《C#程序设计经典 教程.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1C#程序设计经典教程第六章集合、索引器与泛型1.总体要求了解.NET类库中的集合类,初步掌握常用集合的创建和操作方法。理解索引器的概念,能区别索引器与属性,掌握索引器的定义与使用。了解泛型的相关概念,初步掌握泛型接口、泛型类、泛型属性和泛型方法的使用。2.相关知识点熟悉类和数组的定义和使用。熟悉类的方法成员的定义与使用等基本操作。3.学习重点集合、索引器、泛型的定义与使用。4.学习难点索引器的作用、定义与使用方法泛型的概念和意义,泛型的定义和使用方法第六章集合、索引器与泛型第六章集合、索引器与泛型主要内容6.1集合6.2索引器6.3泛型6.1集合6.1
2、.1集合概述6.1.2ArrayList6.1.3哈希表Hashtable6.1.4栈和队列6.1.1集合概述集合能随意调整大小,集合可以把一组类似的对象组合在一起。任何类型的对象都可被组合到一个Object类型的集合中,并通过C#的foreach语句来访问其中的每一个对象。操作过程中MyClass的对象与Object对象之间MyClassmcObj;装箱:Objectobj=mcObj(无需显式转换)拆箱:mcObj=(MyClass)obj(事先装箱的)对象类型的集合位于System.Collections命名空间;6.1数组类Array数组是简单集
3、合System.Array类是所有数组的基类(特殊类,不能用于派生)publicabstractclassArray:ICloneable,IList{//类体:实现了多个接口//(数组操作的常用属性和方法,多为静态)}interfaceICollection{intCount{get;}voidCopyTo(Arrayarray,intindex);boolIsSynchronized{get;}objectSynchRoot{get;}}interfaceICloneable{objectClone();}interfaceIList:Collect
4、ion,IEnumerable{intAdd(objdectvalue);voidClear();boolContains(objectvalue);intIndexOf(objectvalue);voidRemove(objectkey);voidRemoveAt(intindex);voidInsert(intindex,objectvalue);…}interfaceIEnumerator{ObjectCurrent{get;}boolMoveNext();voidReset()}interfaceIEnumerable{//foreach遍历的基
5、础IEnumeratorGetenumerator();}publicstaticvoidMain(){int[]a=newint[3];Arrayb=Array.CreateInstance(typeof(int),3);for(inti=0;i<3;i++){a[I]=2*i;b.SetValue(3*i,i);}foreach(intxina)console.Write(“{0}”,x);foreach(intxinb)console.Write(“{0}”,x);}接口中的方法:默认是publicabstract的。继承接口的类:必须实现接口中
6、的所有属性和方法,否则该类是抽象的。6.1.4栈和队列1.栈StackStack类实现了先进后出的数据结构,这种数据结构在插入或删除对象时,只能在栈顶插入或删除。创建栈对象的一般形式如下:Stack栈名=newStack();Stack类提供了栈常用操作方法,包括在栈顶添加数据、移除栈顶数据、返回栈顶数据、清空栈和检查是否包含某个数据等,方法名分别为Push、Pop、Peek、Clear和Contains。其中,Push和Pop每操作一次只能添加或删除一个数据。a1a2an…栈底栈顶出栈进栈6.1.4栈和队列2.队列QueueQueue类实现了先进先出的
7、数据结构,这种数据结构把对象放进一个等待队列中,当插入或删除对象时,对象从队列的一端插入,从另外一端移除。队列可以用于顺序处理对象,因此队列可以按照对象插入的顺序来存储。创建队列对象的一般形式如下:Queue队列名=newQueue([队列长度][,增长因子]);其中,队列长度默认为32。增长因子默认为2.0,即每当队列容量不足时,队列长度调整为原来的2倍,可重新设置增长因子的大小。a1a2a3…an队头队尾出队入队10集合类的选择选择集合类时,一般要考虑以下问题:(1)是否需要一个序列列表,需要先进先出行为时可使用Queue队列类,在需要后进先出行为时
8、可使用Stack栈类。(2)是否需要随机访问集合中的元素,此时不能选择Queue
此文档下载收益归作者所有