训练师脚本:如何使用泛型与泛型集合.doc_第1页
训练师脚本:如何使用泛型与泛型集合.doc_第2页
训练师脚本:如何使用泛型与泛型集合.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北大青鸟合作院校事业部 院校教学服务部脚本_ 如何使用泛型和泛型集合第1页PPT(训练师站在演讲台正中央,精神饱满,声音洪亮)大家好,今天我们来学习泛型和泛型集合。(切换PPT)第2页PPT我们往ArrayList类型的students集合中添加一个Teacher对象,然后遍历输出。首先我们来判断能否加入一个Teacher对象?(停顿2秒)是可以的,那么遍历这个集合是否有问题呢? (停顿2秒)是有问题的,因为当遍历到jacky 这个对象时,是不能把它转换成Student对象的。(切换PPT)第3页PPT大家看这样一个集合, Student集合中包括了3个学员,(切换PPT)假设我们向Student集合中添加了一个Teacher对象成龙龙,则班级里共包括4个学员。当我们遍历集合时,访问到成龙龙时就会出现运行错误,这说明我们在使用ArrayList集合进行对象存储时不易控制,在类型转换时容易出错,从而引发了集合元素的类型安全问题。我们怎么能做到让添加到集合中的对象都是合法的呢?(切换PPT)第4页PPT我们使用泛型集合就可以规范这样的类型安全问题了。首先要引入System.Collections.Generic命名空间,在定义集合时使用List 来规范集合中存放的元素只能是Student对象,(切换PPT)这样当我们将Teacher对象加入班级时就会引发编译出错,从而将问题消灭在萌芽状态。由于添加的元素都是安全的,所以当我们遍历List集合时就不会引发错误了。另外大家要注意,这里我们不再需要对数组的元素进行类型转换了,这是因为我们在遍历泛型集合时,定义的遍历对象只需要是元素类型就可以了。 由此可见泛型集合List与集合的用法相似,区别是增加元素时严格检查类型保证元素的一致性;遍历时不需要类型转换(装箱拆箱) ,从而提高了安全性和执行效率。(切换PPT)第5页PPT所以说对于List泛型集合来说,(切换PPT) Student对象是允许添加的,Teacher对象是不允许添加的,(切换PPT) 遍历时无须转换类型了,这就是泛型集合的两大优势。泛型最常见的用途是创建集合类,典型泛型集合有List,Dictionary, 、表示该泛型集合中的元素类型,。(切换PPT)第6页PPT下面我们来看泛型集合List的应用举例,List的访问方式与ArrayList相同,也是使用索引访问和删除,但无需类型转换,遍历时不需要类型转换。(切换PPT)第7页PPT最后我们来总结一下List 与 ArrayList区别,两者最大的区别就是List在增加元素时类型严格检查,遍历时无需装箱拆箱操作。那么是否有哈希表那样存储Key和Value形式的泛型集合呢? 前面谈到的Dictionary就满足要求。(切换PPT)第8页PPT下面我们来具体介绍一下Dictionary的特性和定义,Dictionary与哈希表类似,是存储Key和Value的泛型集合,区别是编译时检查类型约束;遍历时不需要类型转换(装箱拆箱)。利用Dictionary存储学员集合的定义如下,其中Key存储String类型, value存储Student类型。(切换PPT)第9页PPT我们来看它的访问方式,(切换PPT) Dictionary的访问方式与哈希表相同,添加、获取元素和删除元素时都是通过Key来完成的,遍历元素时也是用到了Values属性,遍历时也是用Student类型无须进行拆箱和装箱了。(切换PPT)第10页PPT最后来总结一下Dictionary与哈希表的区别,最大的区别是编译时检查类型约束;遍历时不需要类型转换(装箱拆箱)。两者的添加元素、获取元素、遍历元素等都是相同的。(切换PPT)第11页PPT最后我们来总结一下泛型的重要性,泛型集合与传统集合相比类型更安全,无需装箱拆箱操作,它是未来五年的主流技术之一,解决了很多需要繁琐操作的问题,通过泛型,我们可以定义类型安全的数据结构,而无需使用实际的数据类型。这能显著提高性能并得到更高质量的代码。而且后续课程还要学习泛型接口。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论