集合副本学习.pptx

上传人:莉*** 文档编号:87377044 上传时间:2023-04-16 格式:PPTX 页数:26 大小:420.58KB
返回 下载 相关 举报
集合副本学习.pptx_第1页
第1页 / 共26页
集合副本学习.pptx_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《集合副本学习.pptx》由会员分享,可在线阅读,更多相关《集合副本学习.pptx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、回顾定义类定义类方法方法重载构造方法定义字段定义属性第1页/共26页理解掌握集合ArrayListHashTable理解掌握泛型集合ListDictionary本章目标第2页/共26页集合的作用/功能管理数据/对象有很多数据/对象,你可以把它们放入一个集合,需要使用时再去取出和数组类似,主要优点是没有数量限制集合主要方法:Add()添加数据/对象 取出数据/对象Remove()移除数据/对象RemoveAt()移除数据/对象Count 数据/对象的数量Clear()清除所有数据/对象foreach 遍历集合中所有数据第3页/共26页数组的局限string Students=new string

2、3 张三,李四,王五;如果每个班级的人数不固定 班级中来了一个新的学员 班级人员的数组 调整大小困难增加元素困难能否动态的维护一个集合?重新定义数组 相同类型和名称变量的集合第4页/共26页ArrayList是一个可动态维护长度的集合可维护动态长度的集合新增元素 可删除元素 可访问单个元素 objectobjectobjectobject0123索引(下标)object40123ArrayList自动调整索引通过索引访问第5页/共26页ArrayList的初始化using System.Collections;ArrayList Students=new ArrayList();引入命名空间实

3、例化一个对象常见错误未引入命名空间定义时未实例化引入System.Collections命名空间实例化ArrayList对象第6页/共26页ArrayList添加元素int Add(Object value)/添加一个对象到集合的末尾ArrayList students=new ArrayList();Student scofield=new Student(Scofield,Genders.Male,28,越狱狱);students.Add(scofield);创建学员对象添加学员连续添加三个学员对象并获取集合元素的数目返回索引ArrayList.Count获取元素数目建立班级学员的集合第7

4、页/共26页访问ArrayList元素(类型)ArrayListindex /按指定索引(下标)取得对象Student stu1=(Student)students0;stu1.SayHi();按索引取值转换为学员对象ArrayList第一个对象的索引是0需要类型转换第8页/共26页删除ArrayList的元素ArrayList.Remove(对象名)/删除指定对象名的对象ArrayList.RemoveAt(index)/删除指定索引的对象ArrayList.Clear()/清除集合内的所有元素students.RemoveAt(0);students.Remove(zhang);Stude

5、nt leave=(Student)students0;leave.SayHi();通过索引删除对象通过指定对象删除只剩一个对象剩余的元素会自动调整索引取得删除后的第一个对象第9页/共26页ArrayList 的遍历/遍历foreach(Object stuo in students)Student stuForeach=(Student)stuo;Console.WriteLine(stuForeach.Name);通过对象遍历打印对象的Name属性Scofield张靓靓周杰杰可以使用和数组类似的方式for(int i=0;i students.Count;i+)Student stuFor

6、=(Student)studentsi;Console.WriteLine(stuFor.Name);foreach 方式输出结果类型转换第10页/共26页常见错误1/students.Add(scofield);students.Add(zhang);students.Add(jay);students.RemoveAt(0);students.RemoveAt(1);students.RemoveAt(2);运行这段代码会发生错误?索引会自动调整删除两个元素后,不再有索引“2“第11页/共26页ArrayList通过索引获取对象为什么使用HashTable能否象索引器那样通过关键字获取该对

7、象呢?动态可维护长度可通过关键字检索C#提供一种集合HashTable Students周杰杰.SayHi();Student stu1=(Student)Students0;第三章中的索引器通过关键字获取对象第12页/共26页什么是HashTableArrayList 每个元素对应一个索引HashTable 通常称为哈希表根据键(Key)可以查找到相应的值(Value)objectobjectobjectobjectobject0123ArrayList索引KeyValueKeyValueKeyValueKeyValueKeyValueHashTable值键键和值一一对应第13页/共26页使

8、用哈希表students.Add(scofield.Name,scofield);添加元素KeyValueStudent stu2=(Student)students周杰杰;stu2.SayHi();通过key获取元素students.Remove(周杰杰);通过key删除元素给哈希表添加元素获取哈希表的元素删除哈希表的元素需要类型转换第14页/共26页哈希表的遍历foreach(Object stuo in students.Values)Student stu=(Student)stuo;Console.WriteLine(stu.Name);如何遍历一个哈希表?KeyValueKeyVa

9、lueKeyValueKeyValueKeyValueValues不能遍历整个对象,而是遍历Valuesforeach(string name in students.Keys)Console.WriteLine(name);可以遍历Keys第15页/共26页小结删除一个ArrayList元素有几种方法?HashTable和ArrayList的主要区别是什么?第16页/共26页引入命名空间:System.Collections.GenericList students=new List();利用List存储班级集合List的使用students.Add(scofield);students.A

10、dd(jacky);将Student对象加入班级将Teacher对象加入班级编译出错foreach(Student stu in students)Console.WriteLine(stu.Name);不需类型转换 遍历List集合演示示例7:MySchool 只能保存Student对象第17页/共26页什么是泛型集合泛型最常见的用途是创建集合类泛型集合可以约束集合内的元素类型 典型泛型集合List,Dictionary、表示该泛型集合中的元素类型ListStudent对象Teacher对象允许添加不允许添加Student对象无需转换类型第18页/共26页 使用泛型集合ListStudent

11、 stu1=students2;stu1.SayHi();Students.RemoveAt(0);/List 方式foreach(Student stu in students)Console.WriteLine(stu.Name);List的访问方式与ArrayList相同使用索引访问,无需类型转换利用索引删除遍历时不需要类型转换第19页/共26页 List 与 ArrayList通过索引删除元素添加对象方法相同通过索引访问集合的元素相同点需要装箱拆箱无需装箱拆箱可以增加任何类型增加元素时类型严格检查不同点ArrayListList异同点是否有哈希表那样存储Key和Value形式的泛型集合

12、呢?访问 List 与 ArrayList 的对比第20页/共26页Dictionary概述Dictionary具有List相同的特性约束集合中元素类型编译时检查类型约束无需装箱拆箱操作与哈希表类似存储Key和Value的集合Dictionary students=new Dictionary();利用Dictionary存储学员集合Key存储String类型value存储Student类型第21页/共26页Dictionary的使用students.Add(scofield.Name,scofield);student stu2=students周杰杰;students.Remove(周杰杰

13、);添加一对Key/Value通过Key获取元素通过Key删除元素/Dictionary 方式foreach(Student student in students.Values)Console.WriteLine(student.Name);遍历ValuesDictionary的访问方式与哈希表相同演示示例8:MySchool 第22页/共26页Dictionary与哈希表遍历方法相同添加对象方法相同通过Key获取Value相同点需要装箱拆箱无需装箱拆箱可以增加任何类型增加元素时类型严格检查不同点HashTableDictionary异同点访问 Dictionary 与 哈希表 的对比第23页/共26页泛型的重要性泛型集合与传统集合相比类型更安全泛型集合无需做数据类型转换泛型的重要性泛型是未来五年的主流技术之一解决了很多需要繁琐操作的问题提供了更好的类型安全性第24页/共26页总结哈希表HashTable如何获取一个元素的Value?ArrayList与哈希表存HashTable取对象需要什么操作?List中的T表示什么?泛型集合与传统集合获取元素时的区别?第25页/共26页感谢您的观看!第26页/共26页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁